我有基本功能:
创建或替换函数t_owner(varchar2中的tname,onchar out varchar2)return varchar2是开始 从表中选择所有者到oname,其中table_name =‘tname’; 回来……
oname 应该是局部变量,而不是输出参数和 tname 不应该作为字符串引用,而是作为输入参数引用。
oname
tname
create or replace function t_owner(tname in varchar2) return varchar2 is oname table.owner%type; begin select owner into oname from table where table_name = tname; return oname; end; select t_owner('table_test') from dual;
函数是一个返回单个值的子程序,它只隐式返回一个out值,因此,不需要定义为参数,已经通过使用指出 return 关键词。因此,您需要摆脱第二个参数并将其转换为局部变量:
return
create or replace function t_owner( tname mytable.table_name%type ) return mytable.owner%type is oname mytable.owner%type; begin select owner into oname from mytable where table_name = tname; return oname; end;
此外
<table_name>.<column_name>%type
table
mytable