本帖最后由 Rookie_CEO 于 2009-08-01 15:56:10 编辑

解决方案 »

  1.   

    求助各位大侠   这是么的个问题啊      我是菜鸟   刚开始学oracle
      

  2.   

    begin
    exec insertStu('10210405512','judy.D','female',sPrint);
    end
    这里面不用写 “exec”这个了,另外,你的变量 sPrint 是定义在你的pl/sql块中的,在sql plus中是不存在的,所在直接打印是不可以的,正确做法应该是:var sPrint varchar2(100);begin
      insertStu('10210405512','judy.D','female',sPrint);
    end;print sPrint;加油,你的程序还有不少地方可以写的更好。
      

  3.   

    majy  兄弟   怎么没有反应 啊
    SQL> set serveroutput on
    SQL> var sPrint varchar2(100);
    SQL>  begin
      2  insertStu('10210405514','Judy.K','female',sPrint
      3  end;
      4  
      5  print sPrint; 按回车   他就不停的换行啊  没有反应啊   这是么的个情况啊在浏览器上  怎么来执行它啊 谢谢你
      

  4.   

    这是  copy错误啊    实际代码  冇错啊...
      

  5.   


    这里的错误信息要充分分析,这里的错误有两处
    1. 第 3 行出现错误: 
    exec insertStu('10210405512','judy.D','female',sPrint);2. 第 5 行, select sPrint from dual;下面再来解析错误的原因
    第一个,你定义的char类型,而这里你定义的是一个varchar2,这个肯定是不对的,不过至于他的错误提示,也不知道是不是由这个错误引起的,你修改一下类型可以试试看第二个错,首先 sqlplus里可以加入plsql的代码段,代码段结尾需要/然后回车
    所以你这里在end后,需要
    end
    /这样,才能让sqlplus知道上面的代码段已经结束,这是你第二个错的第一个问题,其次,你没有/ 所以 sqlplus把下面的select spring from dual;也作为plsql块里的部分,这里当然也错了。plsql里不能直接select 而不带into的。select 只能在sqlplus里使用,如果是在plsql里可以用dbms_output.put_line打出来。如下SQL>set serveroutput on;
    SQL>DECLARE sPrint char(100);
      2 begin
      3 exec insertStu('10210405512','judy.D','female',sPrint);
      4 dbms_output.put_line(sPrint);
      5 end
      6 /这是一种方式,如果是在sqlplus里select出来就要改一改整个方式了,如小SQL>set serveroutput on;
    SQL>variable sprint char(100); 
    SQL>begin insertStu('10210405512','judy.D','female', :sPrint); end;
      2 /
    SQL>pring :sprint;这两种方式要注意对sprint的定义方式, 分别是变量和绑定变量。
      

  6.   


    挺一下,int 的分析很全面,UP