簡體   English   中英

無法從 oracle 存儲過程中獲取布爾值

[英]Unable to get boolean value from oracle stored procedure

我試圖從幾個小時內找出如何從 oracle 存儲過程中獲取作為布爾值的返回值。

我創建了一個簡單的 SP,它返回一個布爾值,但是當我將參數作為 OracleDbType.Boolean 傳遞時,我收到錯誤。

這是我的sp

create or replace procedure nbq_out_test (pi_bool_in IN BOOLEAN,
                                  pi_var_in  IN VARCHAR2,
                                  pi_num_in  IN NUMBER,
                                  po_bool_out OUT BOOLEAN,
                                  po_var_out  OUT VARCHAR2,
                                  po_num_out OUT NUMBER) AS
BEGIN
    po_bool_out := pi_bool_in ;
    po_var_out := pi_var_in;
    po_num_out := pi_num_in;

END   nbq_out_test;

這是我的 C# 代碼

OracleCommand command = new OracleCommand("NBQ_OUT_TEST", con);
            OracleParameter param;
            command.BindByName = false;
            command.CommandType = CommandType.StoredProcedure;

param = new OracleParameter("PI_BOOL_IN", OracleDbType.Boolean, ParameterDirection.Input); //Works fine as input
            param.Value = true;
            command.Parameters.Add(param);

param = new OracleParameter("PO_BOOL_OUT",OracleDbType.Boolean,ParameterDirection.Output); //This is the line causing error.

            command.Parameters.Add(param);
command.ExecuteNonQuery();

這是錯誤

ORA-06502: PL/SQL: numeric or value error\nORA-06512: at line 1

我無法修改存儲過程以返回10或任何類似的值。

oracle版本是12.1.0.2.0

Oracle.ManagedDataAccess.18.3.0

我已經搜索了很多,但大部分建議是修改不在我最后的 SP。

任何建議都會有很大幫助。

OracleDbType 似乎不支持布爾值。

我認為您的問題已經在下面的頁面中找到了答案。 OracleDbType 中的布爾值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM