首頁  >  文章  >  資料庫  >  动态执行sql,返回一个值

动态执行sql,返回一个值

WBOY
WBOY原創
2016-06-07 14:54:591249瀏覽

动态执行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