gpt4 book ai didi

plsql - 立即执行创建表和更新表

转载 作者:行者123 更新时间:2023-12-05 08:44:35 24 4
gpt4 key购买 nike

我正在使用 execute immediate 在 pl/sql 中创建一个临时表,并且还在表中插入为什么要创建表。

之后我更新表格。但是我收到错误表不存在,因为它没有创建表,所以立即执行

示例代码------------

begin
execute immediate 'create table t23 as select ''1'' aa from dual';
update t23 set aa ='2' where aa='1';
COMMIT ;
end;

最佳答案

您正在使用静态 SQL 来执行更新,并且在运行 PL/SQL 之前对其进行了验证,因此发现它引用了一个当前不存在的表。您可以使用动态 SQL 来执行更新:

begin
execute immediate 'create table t23 as select ''1'' aa from dual';
execute immediate 'update t23 set aa =''2'' where aa=''1''';
COMMIT ;
end;

但是,在 Oracle 中,首先动态创建这样的临时表确实是一种不好的做法。你为什么要这样做?一旦我们知道,也许我们可以提出更好的替代方案。

关于plsql - 立即执行创建表和更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702495/

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