2012-11-20 52 views
1

我編寫的應用程序在Oracle數據庫上工作,我必須有可能從數據庫上的java代碼運行sql腳本。現在我在sqlplus.exe應用程序的幫助下做到了這一點,但是這個解決方案迫使我安裝Oracle客戶端,所以我想知道是否有任何方法可以從java代碼運行sql腳本,但不使用sqlplus.exe。我找到了描述基於ant任務的解決方案的文章,但據我所知,這會迫使我將ant buid基礎架構附加到應用程序上。對我來說最好的解決方案就是讓特殊的jar使用該jar中的一些魔法類,並且使用該類來完成它:)可能嗎?Oracle腳本從Java代碼運行而不安裝Oracle客戶端

+4

JDBC有什麼問題? – Mat

+0

IMO,只要說sqlplus可執行文件是先決條件就不那麼痛苦了......或者將您的腳本重寫爲SQL + PL/SQL,以便您可以使用JDBC運行它們。 –

回答

0

甲骨文基本上使用三種語言:

  • SQL(像SELECT,INSERT命令,CREATE TABLE等)
  • PL/SQL(過程語言包括變量聲明,循環,例外)
  • SQLplus命令(SET DEF,VARIABLE,@,用於執行PL/SQL塊的斜槓(/)等)

使用Java客戶端(ojdbc.jar),您可以一次執行單個SQL語句和PL/SQL塊。但是它不支持SQLplus。

如果您的腳本很簡單,那麼您可以編寫一個解析器,將腳本拆分爲單個SQL語句和PL/SQL塊並逐個執行它們。但是如果你使用SQLplus命令,那麼這是不可能的。

+0

我的腳本很複雜,我想寫腳本解析器,但肯定我想要腳本運行器。 – user1838736

相關問題