首页  >  文章  >  数据库  >  动态执行sql,返回一个值

动态执行sql,返回一个值

WBOY
WBOY原创
2016-06-07 14:54:591250浏览

动态执行sql,返回一个值 PL/SQL dynamic SQL 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) li

动态执行sql,返回一个值 PL/SQL dynamic SQL
  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;
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn