我正在尝试从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(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
当我在Oracle中执行SELECT TEMP.GETNAME('Vishal','Tavande') FROM DUAL
时,我可以将结果作为'VishalTavande';但是当我在Shell中执行它时,我得到的是
fullname = SELECT TEMP.GETNAME(“Vishal”,“Tavande”)FROM DUAL ERROR at 第1行:ORA-00904:“Vishal”:标识符无效
任何帮助都非常明显。 感谢