簡體   English   中英

如何從oracle表中動態獲取數據,其結構只在運行時使用pl sql過程知道?

[英]How to fetch data dynamically from an oracle table whose structure is known only at runtime using pl sql procedure?

我已經被要求創建一個pl / sql過程,它將接受select語句作為輸入參數。 必須從查詢中提取所有數據並在DBMS_OUTPUT中打印。

我研究過本機動態SQL和DBMS_SQL,但無法弄清楚如何從結構未知的表中獲取和處理數據。

由於表名將在運行時提供,我只想知道如何存儲從查詢中獲取的數據,因為我無法定義變量或集合,因為表的結構是未知的

首先,要求似乎令人難以置信的可疑。 您永遠不應該依賴於寫入DBMS_OUTPUT緩沖區的數據 - 完全取決於客戶端啟用緩沖區,確保緩沖區足夠大,以及將緩沖區中的數據顯示給用戶。 默認情況下,這些都不會發生。 編寫一個程序來操作一個結構完全未知的表將是非常不尋常的。

但是,如果你真的認真,你可能會想要使用Tom Kyte的SQL Unloader ,它使用DBMS_SQL將數據從任意查詢寫入平面文件並修改它以將其寫入DBMS_OUTPUT

有一個開源實用程序包,用於在PL / SQL中生成Excel可讀文件。

https://code.google.com/p/plsql-utils/

但是,如果可能的話,我建議您考慮使用更通用的語言。 PL / SQL對數據庫邏輯非常有用,但是為了與外界交互,我希望你能用Python或Java之類的東西來實現更易於維護的解決方案。

雖然,YMMV一如既往:-)

暫無
暫無

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

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