Home  >  Article  >  Database  >  在oracle:form中使用动态SQL

在oracle:form中使用动态SQL

WBOY
WBOYOriginal
2016-06-07 14:54:521295browse

在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;
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn