[英]How to display value return from function in procedure
我想將p_string傳遞給過程,然后過程將其傳遞給函數,函數將布爾返回給過程,然后使用dbms_output.put_line顯示布爾值返回過程。 但是,我一直無法顯示它。 我應該如何顯示?
CREATE OR REPLACE PACKAGE BODY LAB4_527802_pkg AS
FUNCTION LAB4_527802_FCN( p_string VARCHAR2)
RETURN BOOLEAN
AS
string1 BOOLEAN;
BEGIN
IF p_string = 'AAA' THEN
string1 := TRUE;
ELSE
string1 := FALSE;
END IF;
return string1;
END LAB4_527802_FCN;
PROCEDURE LAB4_527802_PROC (p_string varchar2)
AS
string1 boolean;
BEGIN
string1 := LAB4_527802_pkg.LAB4_527802_FCN(p_string);
dbms_output.put_line (string1);
END LAB4_527802_PROC;
END LAB4_527802_pkg;
/
SHOW ERRORS
這就是我所說的程序。
set serveroutput on;
begin
LAB4_527802_pkg.LAB4_527802_PROC ('AAA');
end;
盡管變量名為string1,但在函數LAB4_527802_FCN和過程LAB4_527802_PROC中均將該變量聲明為布爾值。 我首先建議使用其他名稱。 但是,您可能會想到,這不是問題的原因。
排隊
dbms_output.put_line (string1);
您正在嘗試打印不起作用的boolean類型的變量。 過程put_line需要一個“字符串”(char,varchar,varchar2)參數。
我懷疑您收到以下錯誤,不是嗎?
PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'
您需要將布爾值轉換為字符串才能打印出來。 例如:
DBMS_OUTPUT.put_line (CASE WHEN string1 THEN 'TRUE' ELSE 'FALSE' END);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.