【发布时间】:2016-03-29 17:32:48
【问题描述】:
我有一个简单的plsql程序,基本上我想做的是计算名称的长度,它是plsql的动态输入,然后根据长度循环。
当我给出像 v_name = 'Dex' 这样的预定义值时,它可以工作,但是当我给出 v_name = &name 时,它会抛出一条错误消息,指出必须声明 Dex。
感谢是否有人能阐明这个问题。请在下面找到错误和程序详细信息:
错误报告: ORA-06550:第 6 行,第 13 列: PLS-00201:必须声明标识符“DEX” ORA-06550:第 6 行,第 3 列: PL/SQL:语句被忽略 06550. 00000 - “第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。 *行动:
PLsql 程序:
declare
v_name varchar2(30);
v_loop_count number;
v_len number;
begin
v_name := &name;
v_loop_count := 0;
v_len := length(v_name);
for v_loop_count in 0 .. v_len-1
loop
dbms_output.put_line('Entered Name is :: '||v_name);
end loop;
end;
【问题讨论】:
-
您仍然需要在替换变量周围加上引号或将它们包含在您的变量中,因为 Oracle 在您的脚本中进行直接替换,因此引号需要在您的字符串文字周围结束。跨度>
-
我不同意这是一个印刷错误。 OP 没有忘记单引号;由于替换变量的性质,OP 不知道需要单引号。我正在投票重新开放。
标签: oracle plsql oracle-sqldeveloper