我正在尝试调用一个非常简单的PLSQL函数,我无法猜测自己在做什么错:
CREATE OR REPLACE PACKAGE BODY KYC_OWN.KYCK_TEMP IS
FUNCTION PrintHelloWorld RETURN VARCHAR2 IS
BEGIN
RETURN 'Hello World';
END printHelloWorld;
END KYCK_TEMP;
然后我这样调用函数:
call KYC_OWN.KYCK_TEMP.PrintHelloWorld() INTO :x;
我想我需要在某个地方声明x变量,但是如何?
预先感谢
答案 0 :(得分:0)
您可以尝试以下方法:
CREATE OR REPLACE PACKAGE BODY KYC_OWN.KYCK_TEMP IS
FUNCTION PrintHelloWorld RETURN VARCHAR2 IS
BEGIN
RETURN ('Hello World');
END printHelloWorld;
END KYCK_TEMP;
或创建如下所示的变量并返回g_helloworld
create or replace package constants as
g_helloworld constant varchar2(11) := 'Hello World';
function get_helloworld return varchar2;
end constants;
/
create or replace package body constants as
function get_helloworld return varchar2
is
begin
return g_helloworld;
end get_helloworld;
end constants;
/
答案 1 :(得分:0)
如果您使用的是SQL * Plus,则可以创建一个变量,然后使用该变量保存函数返回变量,例如:
VARIABLE x varchar2(30)
call KYC_OWN.KYCK_TEMP.PrintHelloWorld() INTO :x;
print x
或者您可以简单地使用匿名块以及dbms_output来显示数字:
set serveroutput on -- assuming you're in SQL*Plus
declare
v_val varchar2(30);
begin
v_val := KYC_OWN.KYCK_TEMP.PrintHelloWorld;
dbms_output.put_line('return val = '||v_val);
end;