---------->create table
create table Robert_test(id varchar2(30) primary key,test_value varchar(10))-----------> insert value
insert into Robert_test values('AA01','one')
/insert into Robert_test values('AA02','two')
/insert into Robert_test values('AA03','three')
/select *
from Robert_test
/ID TEST_VALUE
------------------------------ ----------
AA01 one
AA02 two
AA03 three----------->create function
create or replace FUNCTION Robert_test_fun(test_ID varchar2) return varchar2
is
all_data varchar2(30);
begin
select test_value into all_data
from Robert_test
where id not in (test_ID);
return all_data;
end;
/--------------------------->function test
select Robert_test_fun('AA01','AA02','AA03')
from dual
/ORA-06553: PLS-306: wrong number or types of arguments in call to 'ROBERT_TEST_FUN'--------------如何实现
select Robert_test_fun('AA01','AA02')
from dual
/ID TEST_VALUE
------------------------------ ----------
AA03 three
create table Robert_test(id varchar2(30) primary key,test_value varchar(10))-----------> insert value
insert into Robert_test values('AA01','one')
/insert into Robert_test values('AA02','two')
/insert into Robert_test values('AA03','three')
/select *
from Robert_test
/ID TEST_VALUE
------------------------------ ----------
AA01 one
AA02 two
AA03 three----------->create function
create or replace FUNCTION Robert_test_fun(test_ID varchar2) return varchar2
is
all_data varchar2(30);
begin
select test_value into all_data
from Robert_test
where id not in (test_ID);
return all_data;
end;
/--------------------------->function test
select Robert_test_fun('AA01','AA02','AA03')
from dual
/ORA-06553: PLS-306: wrong number or types of arguments in call to 'ROBERT_TEST_FUN'--------------如何实现
select Robert_test_fun('AA01','AA02')
from dual
/ID TEST_VALUE
------------------------------ ----------
AA03 three
begin
sqlstr:='';
sqlstr:=sqlstr||'select test_value into all_data ';
sqlstr:=sqlstr||'from Robert_test ';
sqlstr:=sqlstr||'where id not in ('|| test_ID ||')' ;
execute immediate sqlstr;
end;
from dual这个试试