1
15
如果您是从sqlplus运行这个脚本(看起来是这样),您需要使用DEFINE命令,它允许您创建sqlplus子条件变量,这些变量只是直接的字符串替换,例如:
看到了吗 Using Sql*Plus 有关如何使用这些的更多信息。可以使用预定义的位置子条件变量从命令行将值传递到脚本中,如下所示:
... 然后像这样调用sqlplus:
关于bind和substitution变量之间的区别,请参见下面Dave Costa的答案。 |
2
8
您尝试使用的方法称为 绑定变量 为了解析SQL语句,必须知道所涉及的表名和列名。因此表名不能用绑定变量表示,因为在解析时该值是未知的。 如果您只是通过SQLPlus执行SQL和内联PL/SQL,那么替换变量是处理这个问题的一种简单方法,Steve解释道。当SQLPlus客户机读取命令时,甚至在将其发送到Oracle进行解析之前,替换变量将被替换为其值。 |
3
7
这是因为Oracle不允许为表(或任何其他对象名)绑定变量。 executeimmediate方法有着重要的安全含义:当tableNm值由用户提供时,您对 SQL injection |
4
6
|
vytaute · 返回表类型时Oracle函数中的类型错误 2 年前 |
BetaRide · Oracle架构用户无法在过程中创建表 6 年前 |
F.donoso · 嵌套的隐式游标未在数据中清除 6 年前 |
ADH · 如何在网格中调用过程和输出结果 6 年前 |