【问题标题】:How to return a boolen in refcursor? [duplicate]如何在参考光标中返回布尔值? [复制]
【发布时间】:2013-02-20 23:44:00
【问题描述】:

在下面的过程中,我需要使用 refcursor 返回一个布尔值

CREATE OR REPLACE PROCEDURE gmmt_proc.co_col_preference_details_sp (
   p_applcd         IN       VARCHAR2,
   p_rptname        IN       VARCHAR2,
   p_user           IN       VARCHAR2,
   p_out_col_pref   OUT      sys_refcursor,
   p_err_cd         OUT      NUMBER,
   p_err_msg        OUT      VARCHAR2
)
IS
   p_check   BOOLEAN := true;
   p_val     NUMBER;
BEGIN
   BEGIN
      SELECT p3.col_grp_id
        INTO p_val
        FROM co_page_t p1,
             co_page_col_grp_t p2,
             co_page_col_grp_user_t p3
       WHERE p1.page_id = p2.page_id AND p3.security_userid = p_user;
   EXCEPTION
      WHEN NO_DATA_FOUND
      THEN
         p_check := false;
   END;

   OPEN p_out_col_pref FOR
      SELECT p1.page_id, p2.col_grp_nm, p3.col_grp_id,p_check
        FROM co_page_t p1,
             co_page_col_grp_t p2,
             co_page_col_grp_user_t p3
       WHERE p1.page_id = p2.page_id
         AND p2.col_grp_id = p3.col_grp_id
         AND p1.page_nm = p_rptname
         AND p1.appl_cd = p_applcd;
END;

p_check 是一个返回错误的布尔值。

PLS-00382: expression is of wrong type

请建议我如何纠正这个问题

【问题讨论】:

  • A BooleanPLSQL 数据类型,在 SQL 中无法识别,因此您不能
  • 有一个答案herehereherehere和...

标签: sql oracle plsql oracle11g plsqldeveloper


【解决方案1】:

将您的布尔值转换为 int 并在客户端检查
对于 C++ 0 == 假!0 == 真
所以您只需将正确的整数值放入您的 sursor 中,它将自动转换为 bool
祝你好运

【讨论】:

    猜你喜欢
    • 2021-08-10
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    相关资源
    最近更新 更多