sql >> Databasteknik >  >> RDS >> Oracle

kör oracle sql-skript från java

Hade samma problem för inte så länge sedan, stötte på din fråga flera gånger medan jag googlade efter en lösning, så jag tror att jag är skyldig dig – här är mina resultat hittills:

Kort sagt, det finns inga färdiga lösningar för det:om du öppnar Ant eller Maven källor kommer du att se att de använder en enkel regexp-baserad skriptdelare som är bra för enkla skript, men vanligtvis misslyckas på t.ex. lagrade procedurer. Samma historia med iBATIS, c5 db-migreringar, etc.

Problemet är att det finns mer än ett språk inblandat:för att kunna köra "SQL-skript" måste man kunna hantera (1) SQL-, (2) PL/SQL- och (3) sqlplus-kommandon.

Kör sqlplus i sig är det verkligen så, men det skapar konfigurationsröra, så vi försökte undvika det här alternativet.

Det finns ANTLR-tolkare för PL/SQL, till exempel Alexandre Porcellis ena —de är väldigt nära, men ingen har förberett en komplett drop-in-lösning baserad på dem hittills.

Det slutade med att vi skrev ännu en ad hoc-delare som är medveten om vissa sqlplus-kommandon som / och EXIT — Det är fortfarande fult, men fungerar för de flesta av våra manus. (Observera att vissa skript, t.ex. med efterföljande -- kommentarer, kommer inte att fungera – det är fortfarande en kluns, inte en lösning.)



  1. Hur beräknar jag veckan på året i Oracle med en icke-standardiserad första dag i veckan?

  2. Leverantören är inte kompatibel med versionen av Oracle-klientfel när du använder Oracle.DataClient

  3. Markörbaserade poster i PostgreSQL

  4. ta bort tom rad som skrivs ut från hive-frågeutdata med python