Попытка запустить скрипт PL / SQL с использованием Java - PullRequest
1 голос
/ 07 сентября 2011

Я знаком с Java JDBC и часто использую его для запуска простых SQL.Тем не менее, я хочу запустить что-то вроде ниже.Это больше PL / SQL, чем обычный SQL, поэтому мои проблемы.Я не запускаю это с коробки Oracle, а с моего собственного компьютера.Может кто-нибудь помочь мне запустить этот тип PL / SQL с использованием Java?

spool C:\count.txt;
DEFINE date="TO_DATE ('08-29-2011','mm-dd-yyyy')";
SET NEWPAGE 0;
SET SPACE 0;
SET LINESIZE 500;
SET PAGESIZE 0;
SET ECHO OFF;
SET FEEDBACK OFF;
SET VERIFY OFF;
SET HEADING OFF;
SET TRIMSPOOL ON;
alter session set nls_date_format='yyyy-mm-dd hh24:mi';
select 'TABLE1', count(*) from SCHEMA.TABLE1 where modifyts < &date;
select 'TABLE2', count(*) from SCHEMA.TABLE2 where modifyts < &date;
select 'TABLE3', count(*) from SCHEMA.TABLE3 where modifyts < &date;
spool off;

1 Ответ

9 голосов
/ 07 сентября 2011

SPOOL, DEFINE и SET - все это команды SQL * Plus. Они не действительны в PL / SQL или в SQL. Следовательно, вы не можете запустить этот вид сценария с помощью инструмента, отличного от SQL * Plus (или инструмента, который поддерживает команды SQL * Plus, такие как SQL Developer или Toad).

Разумеется, вы можете сделать так, чтобы ваше приложение Java вызывало операционную систему для вызова исполняемого файла SQL * Plus (при условии, что оно установлено на компьютере, на котором запущено приложение Java) и передавал сценарий в SQL * Plus. , Но это обычно намного сложнее, чем вам нужно. Было бы более разумно либо просто использовать SQL * Plus, либо выдавать только операторы SELECT из вашего Java-приложения и использовать классы файлового ввода-вывода Java для записи результатов в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...