动态执行sql,返回一个值
- 作者: 舌战群RU885
- 来源: 51数据库
- 2022-08-17
function dyn_sql(p_sql in varchar2) return varchar2 is
c integer;
result varchar2(4000);
l_temp number;
begin
c := dbms_sql.open_cursor;
dbms_sql.parse(c, p_sql, dbms_sql.native);
if upper(p_sql) like 'SELECT%' then
dbms_sql.define_column(c, 1, result, 4000);
l_temp := dbms_sql.execute_and_fetch(c);
if l_temp > 0 then
dbms_sql.column_value(c, 1, result);
else
result := null;
end if;
else
l_temp := dbms_sql.execute(c);
result := null;
end if;
dbms_sql.close_cursor(c);
return result;
end dyn_sql;
推荐阅读
