我收到这个错误:
Error report -
ORA-00984: column not allowed here
ORA-06512: at line 14
00984. 00000 - "column not allowed here"
这是代码。我复制并粘贴字段名称(全部大写)。字段名称应该正确
set serveroutput on
DECLARE
my_creation_dt date;
mysql varchar2(6000) := '';
BEGIN
select creation_dt into my_creation_dt from role_table where security_role = 'admin';
mysql := 'insert into role_grant_table (PERSON_ID, CREATION_DT, SECURITY_ROLE,
SSS_CREATE_DT, UPDATE_WHO, UPDATE_ON) values (1234, SYSDATE,
"ADMIN",
:my_creation_dt,
"myname",
SYSDATE)'; -- line 14, column not allowed here
execute immediate mysql using (my_creation_dt);
END;
双引号用于括起标识符(通常当它们具有混合大小写或标点符号时)。所以 Oracle 正在解释"ADMIN"
and "myname"
作为标识符,在这种情况下解析器将其视为列名。该错误告诉您不允许在此处引用列。
据推测,您希望这些是要插入的字符串值。使用
单引号将字符串文字括起来,即'ADMIN'
and 'myname'
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)