欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle执行计划

程序员文章站 2022-06-01 22:21:29
...
begin

  dbms_stats.gather_table_stats(ownname          => 'CRM',
                            tabname          => 'E_TEL_VIPCUST_ADD',

                            estimate_percent => 0.01,

                            degree           => 1,

                            cascade          => true);

end;

/

FOR循环
示例:


DECLARE 
     cursor c_1 is select ename,sal from emp;     --定义游标     
BEGIN
     dbms_output.put_line('行号 姓名 薪水');
     FOR i IN c_1         --for循环中的循环变量i为c_1%rowtype类型;
     LOOP
     dbms_output.put_line(c_1%rowcount||' '||i.ename||' '||i.sal);    --输出结果,需要 set serverout on 才能显示.
     END LOOP;
END; 

declare 
sqls varchar2(100);
BEGIN
  dbms_output.put_line('********  表名 ******************');
  FOR i IN ( SELECT TABLE_NAME FROM user_tables) --for循环中的循环变量i为c_1%rowtype类型;
   LOOP
    sqls := 'create or replace view view_' || i.table_NAME || 'as select * from' || i.table_NAME;
    begin
    execute immediate sqls;
    exception
      when OTHERS Then
        dbms_output.put_line(sqlerrm);
    end;
  END LOOP;
END;

1  ORU-10027:buffer overflow limit of 2000 bytes;

方法1set serveroutput on size 10000000 //设置大点,默认为2000 bytes
方法2exec dbms_output.enable(999999999999999999999); //默认为2000 bytes