单引号参数在传递到oracle函数并从shell脚本调用时转换为双引号参数
我正在尝试从shell脚本执行一个oracle函数。 此函数只接受两个字符串参数,并返回其连接字符串的完整值。 下面是oracle函数单引号参数在传递到oracle函数并从shell脚本调用时转换为双引号参数,oracle,shell,Oracle,Shell,我正在尝试从shell脚本执行一个oracle函数。 此函数只接受两个字符串参数,并返回其连接字符串的完整值。 下面是oracle函数 create or replace package temp as function getName(v_fname in varchar2, v_lname varchar2) return varchar2; end temp; create or replace package body temp as function getName(
create or replace package temp as
function getName(v_fname in varchar2, v_lname varchar2) return varchar2;
end temp;
create or replace package body temp as
function getName(v_fname in varchar2, v_lname in varchar2) return varchar2 is
v_fullname varchar2(17);
begin
--DBMS_OUTPUT.PUT_LINE(v_name);
v_fullname := concat(v_fname,v_lname);
return v_fullname;
end getName;
end temp;
/
下面是shell脚本的片段
fullname=$(sqlplus -s myuser/password@DBinstance << !
set heading off
set feedback off
SELECT TEMP.GETNAME('Vishal','Tavande') FROM DUAL;
!)
echo $fullname
fullname=$(sqlplus-s myuser)/password@DBinstance哪一个shell?在Linux下的bash/ksh中可以像预期的那样工作…我想我得到了答案…我必须以“'”格式将字符串的值存储在变量中,并在函数中使用这些变量。例如,var1=“'Vishal”'var2=“'Tavande””,并将方法调用为SELECT TEMP.GETNAME($var1,$var2)从DUALI开始,我不确定您是否已经显示了实际的shell脚本;您是否真的已经在调用中使用了变量,而不是您显示的硬编码值?