簡體   English   中英

查找遠程數據庫上的PL / SQL函數的返回值

[英]Find the return value of a PL/SQL function on remote database

我有一個在遠程客戶端上運行的Oracle XXg數據庫,無法重現測試環境。 現在,有一個存儲過程返回一個意外值(它只是一個應該為零的整數,但返回其他數字),我想發現那個值。

我可以編輯函數和過程,但是如果不使用無法調試的大型Java應用程序,就無法調用該函數。 有什么方法可以將返回值記錄到文本文件或數據庫中的某些日志中,以便在執行后可以對其進行檢查?

如果沒有這種功能,那么麻煩的解決方法是什么?

如何創建一個表來記錄值?

CREATE TABLE mylog (t TIMESTAMP DEFAULT SYSTIMESTAMP, retval NUMBER);

CREATE OR REPLACE PROCEDURE yourprocedure 
AS
  myval NUMBER;

  PROCEDURE logval (myval NUMBER) AS PRAGMA autonomous_transaction;
  BEGIN
    INSERT INTO mylog(retval) VALUES (myval);
    COMMIT;
  END logval;
BEGIN
  -- your normal code
  myval := 1; 
  -- log the result
  logval(myval);
END yourprocedure;
/

然后,您可以簡單地從表mylog選擇值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM