设置显示执行时间

set timing on;

不显示:off

最简单的块:

 begin dbms_output.put_line('Hello,World');
   end;

执行结果出现这种情况(执行成功,但是不显示字符串):

oracle小知识

这时的解决办法是:在执行块之前,先执行这条语句: set serveroutput on   (可以理解为开关,把输出这个功能打开)

oracle小知识

这时就成功了。

格式化命令:

 设置每行显示的记录长度: SET LINESIZE 300

 设置每页显示的记录长度:SET PAGESIZE 30

使用@执行程序

查看所有的数据表: SELECT * FROM tab;

查看当前的用户:show user

切换登陆用户: CONN 用户名/密码 【as sysdba】

对于每一张表,都有其属于的用户,不同的用户想要访问的其它用户的表,需要这张表的完整名称,及用户名.表名称

调用本机的指令,在前面加 HOST ,例如 HOST copy d:\demo.sql d:hello.sql

 

       一.For循环游标

    基本的步骤是: 1.定义游标----2.定义游标变量----3.循环游标

 

--声明游标 CURSOR cursor_Name IS  select_sattement
--For循环游标
--(1)定义游标
--(2)定义游标变量
--(3)使用For循环来使用这个游标
 declare   
     cursor c_job   --定义游标
     is  
     select emp.empno,emp.ename,emp.job,sal
     from emp 
     where job='MANAGER';
        --定义游标变量
     c_row c_job%rowtype;
begin 
    for c_row in c_job loop   --循环游标
      dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);
      end loop;
end;     

 二.Fetch游标

--Fetch游标
--使用的时候必须要明确的打开和关闭
declare 
    cursor c_job
    is
    select empno,ename,job,sal
    from emp
    where job!='MANAGER';
    c_row c_job%rowtype;
begin 
   open c_job;
   loop
      fetch c_job into c_row;
      exit when c_job%notfound;
      dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);
      end loop;
      close c_job;
      end;

 下面是一个根据日期,更新表中每一行的是周几的游标例子

--游标练习,根据日期,更新每行是周几
DECLARE
 CURSOR c_date
 IS 
 select DIM_TIME.DATE_ID,DIM_TIME.YEAR_MONTH
 FROM DIM_TIME;
 c_row c_date%rowtype;
 begin
   for c_row in c_date  loop
      update DIM_TIME set Dim_Time.Week_Name=to_char(to_Date(c_row.DATE_ID,'YYYYMMDD'),'DAY')
      where Dim_Time.Date_Id=c_row.Date_ID;
      end loop;
      end;
View Code

相关文章:

  • 2022-02-04
  • 2021-06-09
  • 2022-12-23
  • 2021-10-22
  • 2021-11-23
  • 2018-05-16
  • 2021-11-19
猜你喜欢
  • 2021-12-15
  • 2021-08-10
  • 2022-12-23
  • 2021-09-20
  • 2021-12-03
  • 2022-12-23
相关资源
相似解决方案