Oracle

測試來自輸入文件的多個查詢

  • June 2, 2014

我有一組表,需要根據不同的使用者執行選擇查詢。表名儲存在文件中,我期待編寫腳本來執行腳本以從文件中讀取表名並以特定使用者身份執行選擇查詢。需要驗證查詢是成功還是失敗。

關於用於自動化的 Oracle 數據庫/腳本(python 或 java)工具的任何建議。

提前致謝。

看起來您需要編寫動態 SQL。動態 SQL 是創建可以執行的 SQL 的 SQL。下面是一個動態 SQL 的簡單範例。

SELECT 'ALTER ' ||
      CASE object_type 
      WHEN 'PACKAGE BODY' THEN 'PACKAGE '
      WHEN 'TYPE BODY'    THEN 'TYPE '
      ELSE object_type ||' '
      END || owner ||'.' || object_name ||' '||
      CASE object_type 
      WHEN 'PACKAGE BODY' THEN 'COMPILE BODY;'
      WHEN 'TYPE BODY'    THEN 'COMPILE BODY;'
      ELSE 'COMPILE;'
      END text
 FROM dba_objects
WHERE status = 'INVALID'
ORDER BY 1;

您還應該在 SQL 中進行格式化,以使 SQL 的輸出盡可能乾淨。

SET TERM      OFF
COLUMN text FORMAT A150
SET ECHO      OFF
SET TRIMSPOOL ON
SET TAB       OFF
SET FEEDBACK  OFF
SET PAGESIZE  0
SET LINESIZE  150
SET TIMING    OFF
SET TERM      ON

然後您只需要編寫生成 SQL 的 SQL,如果您需要以不同的使用者身份連接,您可以包含如下行:

從雙重中選擇“連接使用者1/cdjkfghljsdg@sidname”文本;

但是您需要弄清楚如何編寫 SQL,因為您沒有提供很多細節。您將假離線到一個文件,然後打開回饋,設置頁面大小 50 左右,可能設置定時等,然後執行假離線文件的輸出。您可能希望在執行階段假離線到日誌文件。有很多例子,你只需要查詢一個符合你想做的例子。

引用自:https://dba.stackexchange.com/questions/66361