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;
我运行创建存储过程的时候没有报错、是执行调用的时候报错说我调用的存储过程是无效的、、、是不是我的存储过程写错了、我才学了一天、上面的是我参照一些资料写的、不知道对不对!
追答需要单调一下
看看存储过程是不是调用进去了
如果没进去 就是调用接口写的不对
看看调用的名称 参数 是不是都正确
如果进去了 那一定就是过程里面报错了
能帮忙看看有语法错吗?
追答就凭这么看太费劲了
你有环境跟进去
一下子就发现问题了
能弱弱的问一句怎么跟进吗?
追答我已经说到吃饭了
拿筷子的本身得靠自己了
哎、我今天刚解除这玩意、算了我在研究吧!
追答没你想象的难
坚持下去 必有所成
麻烦采纳
存储过程出现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 ...