gpt4 book ai didi

oracle - 无法使用 pl/sql 创建表

转载 作者:行者123 更新时间:2023-12-02 09:33:46 25 4
gpt4 key购买 nike

declare
type yy is table of t12.name%type index by binary_integer;
y yy;
n number:=1;
begin
execute immediate 'create table rat1 ( name varchar2(10) )';
commit;

select name bulk collect into y from t12;
for i in (select id,name from t12)
loop
dbms_output.put_line(y(n));
n:=n+1;
end loop;
forall i in y.first..y.last
insert into rat1 values(y(i));
end;

它给出了ora-00942。我查了一下......在一些网站上提到你必须给予以下特权......

grant select on sys.v_$paramenter to abc

我也无法做到这一点..任何人都可以帮助我吗

最佳答案

更改它,使其在 2 个连续步骤中执行(而不是像现在一样在一个 PL/SQL 匿名 block 中执行):

首先这个

begin
execute immediate 'create table rat1 ( name varchar2(10) )';
commit;
end;

然后作为第二个 block

declare
type yy is table of t12.name%type index by binary_integer;
y yy;
n number:=1;
begin

select name bulk collect into y from t12;
for i in (select id,name from t12)
loop
dbms_output.put_line(y(n));
n:=n+1;
end loop;
forall i in y.first..y.last
insert into rat1 values(y(i));
end;

编辑 - 根据评论:

在执行之前,解析整个 PL/SQL block - PL/SQL block 中使用的所有对象必须在执行 PL/SQL block 之前存在...

关于oracle - 无法使用 pl/sql 创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7858902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com