存储过程出现 SQL statement ignored错误

create or replace procedure user_procc
is
is_age number;
is_birth date;
is_code varchar2;

begin
select birthady into is_birth from t_user;
select floor((sysdate-is_birth)/365) into is_age from dual;
end;
if is_age>60 then
begin
select identity_card_number into is_code from t_user;
is_age:=floor((sysdate-to_date(substr(is_code,7,8),'yyyy-MM-dd'))/365);
update t_user
set age=is_age;
end;
else
begin
update t_user
set age= is_age;
end;

哪里错了、请懂的人帮帮忙、刚学习存储过程
我在PL/SQL中调用的sql块是
begin
user_procc();
commit;
end;

存储过程出现 SQL statement ignored错误是:存储过程语句错误,字段或变量名可能拼错,导致存储过程无法执行。

解决方法:仔细检查存储过程里的变量,字段,语句等是否正确。

PL/SQL的特点:

1、PL/SQL是一种块结构语言,一个PL/SQL程序就是一个块,块中可以嵌套子块,能够使一组SQL语句的功能更具模块化程序特点;

2、每个块中可以定义变量,变量的作用范围仅限于该块;

3、PL/SQL程序块中可以使用SQL的查询语句,DML(表的增删改操作)语句及事务处理语句,可以对程序中的错误进行自动处理,使程序能够在遇到错误的时候不会被中断;

4、PL/SQL程序大小写不敏感。

5、Oracle中的PL/SQL引擎负责解释和执行PL/SQL程序,PL/SQL程序可以直接和SQL引擎进行交互。

PL/SQL引擎的作用:

编写的SQL语句,通过网络、java程序或者客户端工具发送给关系型数据库管理系统,PL/SQL引擎负责拿到这个字符串(SQL语句就是一个字符串文本格式),对其SQL语句进行语法分析,判断该SQL语句否符合Oracle中的语法要求,若符合,则执行SQL语句.

PL/SQL程序块与SQL语言的区别:

1、SQL语句:通过多条SQL语句实现功能时,每条语句都需要在客户端和服务端传递,而且每条语句的执行结果也需要在网络中进行交互,占用了大量的网络带宽,消耗了大量网络传递的时间,而在网络中传输的那些结果,往往都是中间结果,而不是我们所关心的。

2、PL/SQL程序块:而使用PL/SQL程序是因为程序代码存储在数据库中,程序的分析和执行完全在数据库内部进行,用户所需要做的就是在客户端发出调用PL/SQL的执行命令,数据库接收到执行命令后,在数据库内部完成整个PL/SQL程序的执行,并将最终的执行结果反馈给用户。在整个过程中网络里只传输了很少的数据,减少了网络传输占用的时间,所以整体程序的执行性能会有明显的提高。

PL/SQL块有以下三部分组成:

声明部分(可选):声明常量、变量、复杂数据类型、游标等;
(执行部分(必须):包含若干语句以实现特定功能;
异常处理部分(可选):处理运行错误

PL/SQL块结构:

declare
声明部分
begin
执行部分,可包含SQL语句或PL/SQL控制语句
exception
异常处理部分
end;


温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-10
是执行到哪句错了?
还是编译就没过?追问

我运行创建存储过程的时候没有报错、是执行调用的时候报错说我调用的存储过程是无效的、、、是不是我的存储过程写错了、我才学了一天、上面的是我参照一些资料写的、不知道对不对!

追答

需要单调一下
看看存储过程是不是调用进去了
如果没进去 就是调用接口写的不对
看看调用的名称 参数 是不是都正确

如果进去了 那一定就是过程里面报错了

追问

能帮忙看看有语法错吗?

追答

就凭这么看太费劲了
你有环境跟进去
一下子就发现问题了

追问

能弱弱的问一句怎么跟进吗?

追答

我已经说到吃饭了
拿筷子的本身得靠自己了

追问

哎、我今天刚解除这玩意、算了我在研究吧!

追答

没你想象的难
坚持下去 必有所成
麻烦采纳

本回答被提问者采纳

存储过程出现SQL statement ignored错误是怎么回事?
存储过程出现 SQL statement ignored错误是:存储过程语句错误,字段或变量名可能拼错,导致存储过程无法执行。解决方法:仔细检查存储过程里的变量,字段,语句等是否正确。

存储过程出现 SQL statement ignored错误是什么
当存储过程遭遇 "SQL statement ignored" 错误时,问题根源在于存储过程中的SQL语句可能存在拼写错误或命名不准确,导致无法顺利执行。解决这一问题的关键是进行细致的代码审查,确保变量、字段和语句的正确性。深入理解,PL\/SQL引擎在数据库管理系统中扮演着重要角色。它接收来自客户端的SQL语句,对其进行语法...

...00922:缺少或无效选项 13 PL\/SQL:SQL Statement ignored_百度...
在控制语句输出的时候是不需要begin end的还有可以把SET SERVEROUTPUT ON;外在存储过程的外面

...is of wrong type及statement ignored错误
newRec有初始化过吗?如果没有初始化过,那么这个变量是NULL,在赋值给其他变量的时候就会出现错误:PLS-00382: expression is of wrong type

SQL Statement ignored
第五行的where rdno=old.rdno;应改为 where rdno=:old.rdno;即在old前加个冒号。

...对象 SYS.PROC6 无效;;PL\/SQL: Statement ignored
dbms_output.put_line( testvalue1 || testvalue2 ); 9 END HelloWorld; 10 \/过程已创建。 SQL> set serveroutput onSQL> SQL> BEGIN 2 HelloWorld(); 3 END; 4 \/Hello WorldFirst Test! Second Test !PL\/SQL 过程已成功完成。不知道是不是你那里没有 括号的原因......

PL\/SQL: Statement ignored
改成OracleCommand cmd=new OracleCommand("pk_wt.f_get('test')",conn);试试

...新建存储过程时,出现“创建过程带有编译错误” ,求大神们帮助。因为...
输入的话要加上in,要不是输入,在后边取出的,至少也得赋值,这里就姑且当做你是要输入的两个参数吧。create or replace procedure add_t (ASSIGN_PK IN VARCHAR2 ,CLASS_PK IN VARCHAR2)IS BEGIN INSERT INTO add_t values(''||ASSIGN_PK||'',''||CLASS_PK||'');commit;END;...

PL\/SQL: Statement ignored
并在SQL*PLUS中调用该过程以修改FORD的工资。 代码:create or replace procedure change_sal (var_ename IN emp.ename%type)is var_job emp.job%type; add_sal number;begin select job into var_job from emp where ename=var_ename; if var_job='PRESIDENT' then add_sal:=1000; elsif var_job='...

Oracle数据库job,调用存储过程,PLSQL工具执行后,没有报错,但是也没有任...
PROCEDURE TEST_JOBPROCE 出现错误:LINE\/COL ERROR --- --- 5\/1 PL\/SQL: SQL Statement ignored 5\/13 PL\/SQL: ORA-00942: 表或视图不存在 SQL> create table test_job (t1 date);表已创建。SQL> create or replace procedure test_jobproce as 2 3 begin 4 5 insert into ...

相似回答