首页 > 解决方案 > Oracle SYS_REFCURSOR 以大写字母返回所有列名,而不是确切的列名

问题描述

我有以下程序

create or replace PROCEDURE USP_MG_SERVICE 
(
  P_ACTION                  IN VARCHAR,
  P_DEPTID                  IN INT,
  P_INTDISTRICTID           IN INT,
  P_INTPOLICESTATIONID      IN INT,
  P_OUT                     OUT SYS_REFCURSOR
) AS 
BEGIN
    IF P_ACTION='GDM' THEN
        OPEN P_OUT FOR
        SELECT INT_SUBNODEVAL_ID, VCH_VALUE_NAME FROM m_admin_subnode_values WHERE BIT_DELETED_FLAG=0 AND INT_PARENT_NODE=1;

    ELSIF P_ACTION ='GDL' THEN
        OPEN P_OUT FOR
        SELECT intDeptId, vchDeptName, vchShrtDeptName FROM m_department WHERE bitDeletedFlag=0 and tinActiveStatus=1;

    ELSIF(P_ACTION='SDL') THEN
        OPEN P_OUT FOR
        SELECT intServiceRegistrationId AS intServiceRegistrationId,intDepartmentId,vchServiceName,stmCreatedOn FROM m_ms_service_registration WHERE bitDeletedFlag=0 and (intDepartmentId = P_DEPTID or P_DEPTID = 0); 

    END IF;    
END USP_MG_SERVICE;

我在下面调用程序

variable p_out refcursor
exec USP_MG_SERVICE('SDL', 0, 0, 0, :p_out);
print p_out;

它在下面给出输出

INTSERVICEREGISTRATIONID  INTDEPARTMENTID   VCHSERVICENAME   STMCREATEDON                  
--some data--              --some data--     --some data--   --some data--
--some data--              --some data--     --some data--   --some data--
--some data--              --some data--     --some data--   --some data--

我需要所有选定的列名和实际的表列名。任何人都可以帮我解决这个问题吗?谢谢

标签: phporacleplsqloracle11gsys-refcursor

解决方案


推荐阅读