在命令行执行:set serveroutput on;
execute P_STUDENT1;

解决方案 »

  1.   

    CREATE TABLE student1(ID INT);
    INSERT INTO student1 VALUES(1);
    INSERT INTO student1 VALUES(2);CREATE OR REPLACE PROCEDURE p_student1   
    AS  
    V_TOTAL NUMBER(10);   
    BEGIN  
     SELECT COUNT(*) INTO V_TOTAL FROM student1;   
     DBMS_OUTPUT.PUT_LINE('总数为:'||V_TOTAL);   
    END; Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 
    Connected as *******************
     
    SQL> SET serveroutput ON;
    SQL> EXEC p_student1;
     
    总数为:2
     
    PL/SQL procedure successfully completed
     
    SQL> 
      

  2.   

    可以select 过程名(参数) from dual
      

  3.   

    sqlplus 中set serveroutput on;execute P_STUDENT1; 
    plsql 你可以右键测试,或者新建命令窗口(而不是sql窗口)输上面的sql
      

  4.   

    命令窗口使用 execute
    查询或者程序段中,直接使用即可。。
      

  5.   

    你这是function 的用法,存储过程不能这样调用。
      

  6.   

    SET SERVEROUTPUT ON
    BEGIN 
         P_STUDENT1;
    END;或者
    SET SERVEROUTPUT ON
    EXEC P_STUDENT1;
         
      

  7.   

    如果在sql*plus 
    set serveroutput on ;
      

  8.   

    用job定时跑也可以,其他的见楼上
      

  9.   

    查询的时候一般用function,因为function本身就能返回一个值
      

  10.   

    查询的时候一般用function,因为function本身就能返回一个值比如我有一张表A,里面有字段id   varchar2,num varchar2,name vachar2 ,因为这张表里面的数据是死的,所以我想要写一个存储过程。当有select * from A where id = ?;返回符合id条件的所有数据。请问这个时候我该怎么写存储过程?求完整的语句。
      

  11.   

    查询的时候一般用function,因为function本身就能返回一个值比如我有一张表A,里面有字段id   varchar2,num varchar2,name vachar2 ,因为这张表里面的数据是死的,所以我想要写一个存储过程。当有select * from A where id = ?;返回符合id条件的所有数据。请问这个时候我该怎么写存储过程?求完整的语句。
    将TGP_FUNDS换成你自己的表CREATE OR REPLACE PROCEDURE TEST(PI_FND_ID VARCHAR2,
                                     PO_CUR    OUT SYS_REFCURSOR) IS
    BEGIN
      OPEN PO_CUR FOR
        SELECT * FROM TGP_FUNDS T WHERE T.FND_ID = PI_FND_ID;
    END TEST;使用存储过程:declare 
     R1 TGP_FUNDS%ROWTYPE; 
     rc sys_refcursor; 
     begin 
     test('MPGF',rc); 
     fetch rc into R1; 
     while rc%found loop 
     dbms_output.put_line(R1.FND_ID); 
     fetch rc into R1; 
     end loop; 
     end; 
      

  12.   

    以上是函数的调用方式。
    用如下方式调用调用存储过程:
    BEGIN 
    P_STUDENT1;
    END;
      

  13.   

    plsql中。命令窗口执行exec p_student1
      

  14.   

    以上是函数的调用方式。
    用如下方式调用调用存储过程:
    BEGIN 
    P_STUDENT1;
    END;
    可以用call P_STUDENT1();的方式调用,注意,如果不带出参和入参,后面的那个()也不能省。
    查询的时候一般用function,因为function本身就能返回一个值比如我有一张表A,里面有字段id   varchar2,num varchar2,name vachar2 ,因为这张表里面的数据是死的,所以我想要写一个存储过程。当有select * from A where id = ?;返回符合id条件的所有数据。请问这个时候我该怎么写存储过程?求完整的语句。
    将TGP_FUNDS换成你自己的表CREATE OR REPLACE PROCEDURE TEST(PI_FND_ID VARCHAR2,
                                     PO_CUR    OUT SYS_REFCURSOR) IS
    BEGIN
      OPEN PO_CUR FOR
        SELECT * FROM TGP_FUNDS T WHERE T.FND_ID = PI_FND_ID;
    END TEST;使用存储过程:declare 
     R1 TGP_FUNDS%ROWTYPE; 
     rc sys_refcursor; 
     begin 
     test('MPGF',rc); 
     fetch rc into R1; 
     while rc%found loop 
     dbms_output.put_line(R1.FND_ID); 
     fetch rc into R1; 
     end loop; 
     end; 
    如果查找的数据有多条的话,使用游标比较方便。