Oracle 字符串内容评估为标识符

Posted

技术标签:

【中文标题】Oracle 字符串内容评估为标识符【英文标题】:Oracle string content evaluated as identifier 【发布时间】:2018-02-20 11:25:30 【问题描述】:

我在 Oracle 中定义了下一个子句:

DEFINE mytable='users';

当我尝试获取该变量时,它显示以下错误:

SELECT &mytable FROM DUAL;

ORA-00904 string: invalid identifier

这意味着将“用户”作为变量进行评估,而不是检索字符串。

¿我该如何解决?

【问题讨论】:

如果您set verify on,您可以看到替换是如何工作的,以及它实际尝试运行的“新”语句;并希望那样会很明显出了什么问题 - dual 表没有名为 users.. 的列 【参考方案1】:

您需要quotes 才能访问此变量mytable,如下所示:

select '&mytable' from dual;

'USERS'
--------------------------------
 users

【讨论】:

以上是关于Oracle 字符串内容评估为标识符的主要内容,如果未能解决你的问题,请参考以下文章

REGEXP oracle几个not语句

Oracle 标识符最大长度

Oracle替换第一个字符

给oracle当主键,随机生成32位字符串,求代码

如何修改oracle的字符集编码

oracle字段中含特殊字符