当前位置: 代码迷 >> Oracle开发 >> oracle创建了一个存储过程,执行后为啥不显示结果呢
  详细解决方案

oracle创建了一个存储过程,执行后为啥不显示结果呢

热度:121   发布时间:2016-04-24 06:32:57.0
oracle创建了一个存储过程,执行后为什么不显示结果呢
创建了一个 查询的存储过程
CREATE OR REPLACE PROCEDURE PRO_TEST (
P_NUM NUMBER,
P_DATE VARCHAR2
)
IS 
V_1 VARCHAR2(20);
V_2 VARCHAR2(20);
V_3 VARCHAR2(20);
BEGIN
SELECT DISTINCT PERSONFULLNAME,PERSONNUM,SHIFTSTARTDATE INTO V_1,V_2,V_3
FROM VP_SCHEDULE
WHERE SHIFTTYPE='Work Shift'
AND PERSONNUM=P_NUM
AND TO_CHAR(SHIFTSTARTDATE,'YYYY/MM/DD')=P_DATE;
end;
为什么执行后不能显示结果?不能像sql server里一样 直接显示结果么,还是有其他的办法呢?
------解决思路----------------------
引用:
.
跟SQLSERVER不一样,需要打印的

CREATE OR REPLACE PROCEDURE PRO_TEST(P_NUM NUMBER, P_DATE VARCHAR2) IS
  V_1 VARCHAR2(20);
  V_2 VARCHAR2(20);
  V_3 VARCHAR2(20);
BEGIN
  SELECT DISTINCT PERSONFULLNAME, PERSONNUM, SHIFTSTARTDATE
    INTO V_1, V_2, V_3
    FROM VP_SCHEDULE
   WHERE SHIFTTYPE = 'Work Shift'
     AND PERSONNUM = P_NUM
     AND TO_CHAR(SHIFTSTARTDATE, 'YYYY/MM/DD') = P_DATE;
  DBMS_OUTPUT.put_line(V_1 
------解决思路----------------------
 V_2 
------解决思路----------------------
 V_3);
end;

调用(command 窗口)
set serveroutput on;
PRO_TEST('??','???');
------解决思路----------------------
存储过程中select不会直接显示结果,需要打印
sql:
DBMS_OUTPUT.PUT_LINE(V_1 
------解决思路----------------------
 V_2 
------解决思路----------------------
 V_3);
如果返回的是多行记录,还要用到游标,循环打印。。。。
  相关解决方案