PL使用PL/SQL中的where子句,保留字作为列名



我有一个名为CODE的列,它是PL/SQL的保留字,所以我试图使用where子句选择所有列,但它不起作用。我用了[],但没用。PL/SQL不同吗?

select * 
from tab_i 
where [code] = 'jack'

首先,CODE不是PL/SQL中的保留字。所以

select *
into my_record_variable 
from tab_i 
where code = 'jack';

select *
bulk collect into my_table_variable 
from tab_i 
where code = 'jack';

应该还可以。

然后,关于";PL/SQL不同吗":不适用。适用于SQL分隔符的规则也适用于PL/SQL。但是,无论在SQL中还是在PL/SQL中,括号都不是有效的分隔符。名称的标准SQL分隔符是双引号。(不过,也有一些DBMS在这方面不符合标准。例如,SQL Server使用括号。(

最新更新