我需要對過時的盒子上舊的Oracle存儲過程進行一些更改,這些過時的盒子正在運行舊的過程。我可以連接到數據庫的唯一工具是SQL Plus。如何將存儲過程加載到內存中以便在SQL Plus中進行編輯?如何打開一個存儲過程並在SQL * Plus中編輯它
我在網上找到的教程不排除這是如何完成的。 :-(
我需要對過時的盒子上舊的Oracle存儲過程進行一些更改,這些過時的盒子正在運行舊的過程。我可以連接到數據庫的唯一工具是SQL Plus。如何將存儲過程加載到內存中以便在SQL Plus中進行編輯?如何打開一個存儲過程並在SQL * Plus中編輯它
我在網上找到的教程不排除這是如何完成的。 :-(
該盒子是HPUX,沒有運行TNS監聽器,幾乎可以清除整個開發工具。但是,DBA能夠使用名爲OEM的管理工具進行連接,並進行了限制性更改。非常感謝您的建議。
這將是一個更容易下載 蟾蜍試用版
劃傷,以前的建議,我只是想出來的Oracle SQL Developer鏈接建議和它的作品的桃色精編輯特效
爲的SQLPlus你很可能需要以顯示存儲過程的內容,並將其脫機到文件(DCookie :-)的建議):
sqlplus> spool myprocname.sql;
sqlplus> select text from all_source where name = 'MYPROCNAME' and type = 'PROCEDURE' order by line;
sqlplus> quit;
然後在一個像樣的編輯器中編輯本地SQL文件。
然後使用SQLPlus運行SQL文件重新構建用於測試的過程。
>sqlplus username/[email protected] @myproc.sql
總之,在keester一個巨大的痛苦。 :-)
你不能下載並安裝Oracle SQL Developer?免費。
對於Unix,還有TOra,(開源)
Unix機器,我連接從hpux登錄本地。沒有TNS到分貝,所以我只能在本地連接... – Jeff 2009-06-30 20:14:47
如果你可以使用SQL *連接到數據庫另外,你應該能夠使用SQL IDE連接。這就是說,你不能在SQL * Plus中打開一個用於編輯的過程,但是你可以編譯一個過程。您可以將更新後的proc複製到命令提示符中(如果需要,請逐行)並編譯它。
如果您需要以手動方式訪問當前源,則可以查詢USER_SOURCE表。
但是,我強烈建議,但是要考慮用IDE連接到數據庫。
您可以使用dbms_metadata.get_ddl
函數來檢索代碼,它比all_sources好得多。
spool /tmp/my_proc.txt
set long 100000
select dbms_metadata.get_ddl('PROCEDURE','NAME','OWNER') from dual;
spool off
+1,但是您可以將後臺打印輸出到一個文件,至少避免了剪切/粘貼疼痛:-) – DCookie 2009-06-30 20:53:49
好一點,我在加入它。:-) – 2009-06-30 21:18:02