Heim  >  Artikel  >  Datenbank  >  在oracle:form中使用动态SQL

在oracle:form中使用动态SQL

WBOY
WBOYOriginal
2016-06-07 14:54:521294Durchsuche

在oracle FORM 由于和DB中的 不一样所以需要一个特定的API exec_sql系列 ,常常用来输出报表的东东 FORM dynamic SQL 动态SQL PL/SQL declare l_sql varchar2(2000); v_ConnID EXEC_SQL.CONNTYPE; v_Cursor EXEC_SQL.CURSTYPE; v_Ignore PLS_INTEGER;begin --

在oracle FORM 由于和DB中的 不一样所以需要一个特定的API exec_sql系列 ,常常用来输出报表的东东 FORM dynamic SQL 动态SQL PL/SQL
declare
  l_sql    varchar2(2000);
  v_ConnID EXEC_SQL.CONNTYPE;
  v_Cursor EXEC_SQL.CURSTYPE;
  v_Ignore PLS_INTEGER;
begin
  --... 你进行相应的 动态SQL 拼接的地方
  --写内容
  --执行查询 并且关闭相应的 连接资源
  v_ConnID := EXEC_SQL.DEFAULT_CONNECTION;
  v_Cursor := EXEC_SQL.OPEN_CURSOR(v_ConnID);
  -- 使用 API    EXEC_SQL.DEFINE_COLUMN( v_ConnID,v_Cursor, v_Count, v_Value, 100);  进行返回值的定义
  EXEC_SQL.PARSE(v_ConnID, v_Cursor, l_sql, EXEC_SQL.V7);
  v_ignore := EXEC_SQL.EXECUTE(v_ConnID, v_Cursor);
  --写入数据 使用 从游标抓取数据 然后 获取值的API
  --WHILE (EXEC_SQL.FETCH_ROWS(v_ConnID, v_Cursor  ) > 0 ) LOOP      
  --     EXEC_SQL.COLUMN_VALUE(v_ConnID, v_Cursor, v_Count, v_Value); 
  --END LOOP;  
  EXEC_SQL.CLOSE_CURSOR(v_ConnID, v_Cursor);
  EXEC_SQL.CLOSE_CONNECTION(v_ConnID);
end;
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn