如何在参考光标中返回布尔值? [复制]
Posted
技术标签:
【中文标题】如何在参考光标中返回布尔值? [复制]【英文标题】: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
请建议我如何纠正这个问题
【问题讨论】:
ABoolean
是 PLSQL 数据类型,在 SQL 中无法识别,因此您不能
有一个答案here和here和here和here和...
【参考方案1】:
将您的布尔值转换为 int 并在客户端检查 对于 C++ 0 == 假!0 == 真 所以您只需将正确的整数值放入您的 sursor 中,它将自动转换为 bool 祝你好运
【讨论】:
以上是关于如何在参考光标中返回布尔值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何检查我正在覆盖的单个异步 C# 任务的布尔返回值? [复制]