java - PL/SQL, Execute Immediate Troubles
问题描述
我学习 Pl/SQL 并且对 EXECUTE IMMEDIATE 有很大的问题。
我检查这个:
CREATE TABLE x(id number(10) );
这可以正常工作。目前我想用BEGIN EXECUTE IMMEDIATE;END来做,试试:
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE x(id number(10) );' ;
END
我有 2 条消息错误:
- 关于符号“;” 被替换为“文件结尾”以继续
- 当它应该是“;身份”时我们遇到“文件结束”符号
我应该如何正确使用 BEGIN/EXECUTE IMMEDIATE/END ?谢谢
解决方案
在动态 SQL 中,您不会终止语句 - 删除这个分号:
... number(10) );'
^
this
所以:
SQL> BEGIN
2 EXECUTE IMMEDIATE 'CREATE TABLE x(id number(10) )' ;
3 END;
4 /
PL/SQL procedure successfully completed.
SQL> desc x
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
SQL>
推荐阅读
- php - 在函数中发布多个值作为变量
- c# - C# Calculator 在某些操作中使用 List Array 错误 Windows 窗体应用程序
- ios - Xcode Storyboard 中有设置应用程序吗?
- selenium - 为什么在 Selenium 通过安全的 vpn 启动的 Chrome 浏览器中,应用程序没有正确加载?
- recaptcha - Google recaptcha v3 总是返回错误
- cucumber - 如何忽略黄瓜中相同值的stepdefinition变量声明
- c++ - 模板特化中的静态断言即使没有实例化也会失败
- java - 处理 3.3.7 - “key”变量并不总是代表最后按下的键
- javascript - 我的包的 NPM 构建阶段在安装期间未执行
- verilog - 我正在尝试以下列方式为我提供向上计数的计数器?