![]() |
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
|
![]() |
Community wiki · SQL语法新手 1 年前 |
|
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
![]() |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
![]() |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |