下面的程序运行正常
declare
v_str dba_tables.table_name%type;
cursor cur1 is select TRIM(TABLE_NAME) AS TABLE_NAME from dba_tables where trim(oWner)='LIANXI';
begin
open cur1;
loop
FETCH cur1 INTO v_str;
EXIT WHEN cur1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_str);
end loop;
end;
但把declare替换成create or replace procedure lianxi.impt as就不行。
请问为什么?
谢谢。
declare
v_str dba_tables.table_name%type;
cursor cur1 is select TRIM(TABLE_NAME) AS TABLE_NAME from dba_tables where trim(oWner)='LIANXI';
begin
open cur1;
loop
FETCH cur1 INTO v_str;
EXIT WHEN cur1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_str);
end loop;
end;
但把declare替换成create or replace procedure lianxi.impt as就不行。
请问为什么?
谢谢。
2 v_str dba_tables.table_name%type;
3 cursor cur1 is select TRIM(TABLE_NAME) AS TABLE_NAME from
4 dba_tables where trim(oWner)='LIANXI';
5 begin
6 open cur1;
7 loop
8 FETCH cur1 INTO v_str;
9 EXIT WHEN cur1%NOTFOUND;
10 DBMS_OUTPUT.PUT_LINE(v_str);
11 end loop;
12* end;
SQL> /过程已创建。SQL>
(说白了就是lianxi没有查询dba_tables的权限,必须给它相应的权限)
然后再
create or replace procedure lianxi.impt as
v_str dba_tables.table_name%type;
cursor cur1 is select TRIM(TABLE_NAME) AS TABLE_NAME from
dba_tables where trim(oWner)='LIANXI';
begin
open cur1;
loop
FETCH cur1 INTO v_str;
EXIT WHEN cur1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_str);
end loop;
end;