解决方案 »

  1.   

    create or replace procedure pk_lyy_sjhz
    is  
        // 存储过程  
    procedure pk_lyy_org这是要干嘛,存储过程到底叫哪个呢。改成 create or replace 
    procedure pk_lyy_orgupdate sjhz set WSYL1=WSYL1 where DWDM=DWDM;
    这里有歧义,变量名和字段名要区分开下面的select * from sjhz 会报错
    在存储过程中执行查询没有意义,也是不符合语法的,去掉
      

  2.   

    oracle 中纯粹的 select 语句不能单独使用,另外,    update sjhz set WSYL1=WSYL1 where DWDM=DWDM;  这个语句,会不起作用,你的变量名字和列名一样了。
      

  3.   

     update sjhz set WSYL1=WSYL1 where DWDM=DWDM;  
    上个月我正好碰到这个问题,字段名和变量名不要同名,大小写不一样也不要,不然这等式相当于1=1,永远为true。
    select * from sjhz      
    如果你可在存储过程中查询,你要定义游标,将查到的结果存到游标中,再在你的程序中显示。直接在存储过程中查询是看不到任何结果的。
      

  4.   

    1:过程里面不可以定义过程,可以调用.你可以建立个包体,包体里定义过程
    2:你的update语句字段名和变量名同名,这是个恒等式,
      

  5.   

    存储过程我是刚学不久,但是看到你写的这个存储过程,我觉得你很有必要将存储过程的基本知识点看看。首先你定义变量名和字段名应该要不相同吧,不然你使用的时候系统也不知道你使用的是哪一个啊。还有就是你在存储过程执行中写入select查询语句明显是不合法的啊。你可以运用游标的相关知识来达到查询操作。建议看看基础。