CREATE OR REPLACE PROCEDURE Spq_proc_arg_type(
m_objname in varchar2,
m_colid in number,
m_coltype out varchar2
) is
NO_DATA_FOUND exception;
begin select data_type into m_coltype
from sys.dba_arguments
where object_name = m_objname
and position=m_colid;
IF (m_coltype is null ) THEN --(???????????)
RAISE NO_DATA_FOUND;
END IF;
exception
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('no data found');
end
;
ORA-01422实际返回的行数超出请求的行数
m_objname in varchar2,
m_colid in number,
m_coltype out varchar2
) is
NO_DATA_FOUND exception;
begin select data_type into m_coltype
from sys.dba_arguments
where object_name = m_objname
and position=m_colid;
IF (m_coltype is null ) THEN --(???????????)
RAISE NO_DATA_FOUND;
END IF;
exception
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('no data found');
end
;
ORA-01422实际返回的行数超出请求的行数
from sys.dba_arguments
where object_name = m_objname
and position=m_colid;
这句的问题
CREATE OR REPLACE PROCEDURE Spq_proc_arg_type(
m_objname in varchar2,
m_colid in number,
m_coltype out varchar2
) is
NO_DATA_FOUND exception;
beginselect data_type into m_coltype
from sys.dba_arguments
where object_name = m_objname
and position=m_colid;
IF (m_coltype is null ) THEN --(???????????)
RAISE NO_DATA_FOUND;
END IF;
exception
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('no data found');
end
;
ORA-01422实际返回的行数超出请求的行数
from sys.dba_arguments
where object_name = m_objname
and position=m_colid;into m_coltype 只能赋予一个单行值,你的查询出来的是多行或者无值都会报错
如果有多条记录的话,你这个 data_type 是想怎么取值的?
如果有多条记录的话,你这个 data_type 是想怎么取值的?
那这个我因该怎么改啊
如果有多条记录的话,你这个 data_type 是想怎么取值的?
那这个我因该怎么改啊 那得问你自己的逻辑,有多个值该怎么取值 ,但是一般来说 给变量赋值在oracle一般都会事先判断值存不存在,值个数等等 ,当然这只是我的经验