PL\SQL 语句忽略错误

Posted

技术标签:

【中文标题】PL\\SQL 语句忽略错误【英文标题】:PL\SQL statement ignored errorPL\SQL 语句忽略错误 【发布时间】:2017-07-23 17:30:58 【问题描述】:

我是 PL\SQL 的初学者,在练习一个小代码时,我遇到如下错误

Error(7,1): PL/SQL: Statement ignored
Error(7,13): PLS-00302: component 'PUT_LINES' must be declared
Error(10,1): PL/SQL: Statement ignored
Error(10,50): PLS-00201: identifier 'LEGTH' must be declared

这是我用来练习的代码

create or replace procedure show_variable_length as 
    my_char char(50) := 'Hello';
    my_varchar  varchar(25) := 'World';
    my_varchar2 varchar2(25) := 'World';
    my_null_test varchar2(25);

begin 
dbms_output.put_lines (my_char || ' ' || my_varchar);
dbms_output.put_line (my_char || ' ' || my_varchar2);
dbms_output.put_line('Length of my_char = ' || length(my_char));
dbms_output.put_line('Lenght of my_varchar= ' || legth(my_varchar));
dbms_output.put_line('Length of my_varchar2 = ' || length(my_varchar2));
my_char := ' ';
my_varchar := ' ';
my_varchar2 := ' ';
dbms_output.put_line ('Length of my char = ' || length(my_char));
end;

请帮忙。

【问题讨论】:

【参考方案1】:

关键字长度(legth 没有n)和put_line(put_lines 末尾有额外的s)有拼写错误

关键字长度有拼写错误的行

dbms_output.put_line('Lenght of my_varchar= ' || legth(my_varchar));

put_line 中有拼写错误的行

dbms_output.put_lines(my_char || ' ' || my_varchar);

修改后的代码

create or replace procedure show_variable_length as 
    my_char char(50) := 'Hello';
    my_varchar  varchar(25) := 'World';
    my_varchar2 varchar2(25) := 'World';
    my_null_test varchar2(25);

begin 
dbms_output.put_line(my_char || ' ' || my_varchar);
dbms_output.put_line(my_char || ' ' || my_varchar2);
dbms_output.put_line('Length of my_char = ' || length(my_char));
dbms_output.put_line('Lenght of my_varchar= ' || length(my_varchar));
dbms_output.put_line('Length of my_varchar2 = ' || length(my_varchar2));
my_char := ' ';
my_varchar := ' ';
my_varchar2 := ' ';
dbms_output.put_line('Length of my char = ' || length(my_char));
end;

【讨论】:

以上是关于PL\SQL 语句忽略错误的主要内容,如果未能解决你的问题,请参考以下文章

第 2 行的错误:PL/SQL:语句被忽略

PL/SQL: SQL 语句被忽略 - 创建一个过程得到编译错误

为啥我的 PL/SQL 触发器会引发“错误(2,2):PL/SQL:语句被忽略”和“错误(2,5):PLS-00204:函数或伪列'EXISTS'”错误?

PLS-00382:表达式类型错误,PL/SQL:语句被忽略

PL/SQL:PLS-00382:表达式类型错误。语句被忽略

错误(12,1):PL/SQL:语句被忽略错误(12,15):PLS-00405:在此上下文中不允许子查询