你没有写create or replace function functionname(...)吗? ...
create or replace function tttt ( p_col in char, p_seq_no out number )return number is sqlsen varchar2(100); begin sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual';
execute immediate sqlsen; return 1;
exception when no_data_found then return 0; end tttt; 我的数据库8.1.7,编译通过。
create or replace function tttt (p_col in varchar2) return number is sqlsen varchar2(100); p_seq_no number; begin sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual'; execute immediate sqlsen; return p_seq_no; exception when no_data_found then return 0; end tttt; /基本的语法都搞不清楚. 函数不需要out参数.
create or replace function tttt (p_col in varchar2) return number is sqlsen varchar2(100); p_seq_no number; begin sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual'; execute immediate sqlsen; return p_seq_no; end tttt;
create or replace function tttt ( p_col in char, p_seq_no out number )return number is sqlsen varchar2(100); begin sqlsen := 'select SEQ_'||p_col||'.nextval from dual';
execute immediate sqlsen into p_seq_no; return 1;
exception when no_data_found then return 0; end tttt;执行过程 declare c number; seq_no number; begin c:=tttt('tt',seq_no); end;
create or replace function tttt (p_col in varchar2) return number is sqlsen varchar2(100); p_seq_no number; begin sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual'; execute immediate sqlsen; return p_seq_no; exception when no_data_found then return 0; end tttt; /
ORA-06512: "USERL.SF_S_SEQ_WL_ODR_NO_50", 行 9
ORA-06512: 行 1
...
(
p_col in char,
p_seq_no out number
)return number is
sqlsen varchar2(100);
begin
sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual';
execute immediate sqlsen; return 1;
exception
when no_data_found then
return 0; end tttt;
我的数据库8.1.7,编译通过。
(p_col in varchar2)
return number is
sqlsen varchar2(100);
p_seq_no number;
begin
sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual';
execute immediate sqlsen;
return p_seq_no;
exception
when no_data_found then
return 0;
end tttt;
/基本的语法都搞不清楚.
函数不需要out参数.
(p_col in varchar2)
return number is
sqlsen varchar2(100);
p_seq_no number;
begin
sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual';
execute immediate sqlsen;
return p_seq_no;
end tttt;
函数是可以有OUT参数的!
这个我已经可以证明了!
(
p_col in char,
p_seq_no out number
)return number is
sqlsen varchar2(100);
begin
sqlsen := 'select SEQ_'||p_col||'.nextval from dual';
execute immediate sqlsen into p_seq_no; return 1;
exception
when no_data_found then
return 0; end tttt;执行过程
declare
c number;
seq_no number;
begin
c:=tttt('tt',seq_no);
end;
(p_col in varchar2)
return number is
sqlsen varchar2(100);
p_seq_no number;
begin
sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual';
execute immediate sqlsen;
return p_seq_no;
exception
when no_data_found then
return 0;
end tttt;
/