plsql动态sql语句[重复]

Posted

技术标签:

【中文标题】plsql动态sql语句[重复]【英文标题】:Plsql dynamic sql statement [duplicate] 【发布时间】:2013-11-28 13:14:54 【问题描述】:

我正在一个过程中执行这两条语句。

 execute immediate 'create table temp_test(user_state varchar(100), user_goal varchar(100))';
      insert into temp_test values('sunil','test');

它给了我错误table not found.

所以我只想知道动态sql语句不会立即执行语句。

【问题讨论】:

【参考方案1】:

您还必须动态插入:

begin
  execute immediate 'create table temp_test(user_state varchar(100), user_goal varchar(100))'; 
  execute immediate 'insert into temp_test values('sunil','test');';
  COMMIT ;
end;

【讨论】:

感谢您的回答!!我们如何在执行立即语句中插入变量?对不起,我是程序编写的新手:)【参考方案2】:

应该是

begin
  execute immediate 'create table temp_test(user_state varchar(100), user_goal varchar(100))'; 
  execute immediate 'insert into temp_test values(''sunil'',''test'')';
  COMMIT ;
end;

【讨论】:

感谢您的回答!!我们如何在执行立即语句中插入变量?对不起,我是程序编写的新手:) 您可以使用 USING 子句。查看链接docs.oracle.com/cd/B28359_01/appdev.111/b28370/dynamic.htm中的示例7.1【参考方案3】:

是的,你是对的,动态 sql 语句不会立即执行语句。检查这个答案execute immediate create table and update table

【讨论】:

感谢您的回答!!我们如何在执行立即语句中插入变量?对不起,我是程序编写的新手:)

以上是关于plsql动态sql语句[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在表中动态记录 PLSql 语句

PL SQL - 使用动态 SQL 生成删除语句

Oracle [存储过程] 执行动态拼接SQL语句并返回结果??

oracle会记录每次执行的sql语句吗

『ORACLE』 PLSQL动态游标的使用(11g)

怎样SQL存储过程中执行动态SQL语句