powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Dynamic SQL in the batch
15 сообщений из 15, страница 1 из 1
Dynamic SQL in the batch
    #39518075
Edgar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет ребята.
Подскажите пожалуйста как запустить динамический SQL из под пакета, и чтобы результат выдавался в файл?
Что то наподобие
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SPOOL RESULTS.TXT

L_SQL VARCHAR(2000);

L_SQL := 'select * from TABLE1';
EXECUTE IMMEDIATE L_SQL;

SPOOL OFF



где тут у меня ошибка?
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518077
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edgarгде тут у меня ошибка?
В мировосприятии.
Для начала ответьте себе на вопроссы:
- где размещен пакет?
- где должен сформироваться файл?
- почему пакет а не скрипт?
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518089
Lary Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edgar, то, что ты привел - лучше бы вообще не приводил. В твоем случае, как ты задаешь вопросы, это должно выглядеть вот так:

"Что то наподобие":
Код: plsql
1.
2.
3.
begin
   Крутой универсальный кусок кода.
end;
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518094
Edgar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
Спасибо за ответ.
Мне надо запустить скрипт из под Windows с помощью утилиты sqlplus который выливал бы результаты в файл на стороне клиента - Windonws. Сам пакет batch.sql также размещён на стороне клиента.

C:\sqlplus user/pass@DB @batch.sql

в batch.sql мне надо забить динамический SQL. Динамика в использовании текущей даты.
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518097
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edgar,

EdgarДинамика в использовании текущей даты.
Код: plsql
1.
where dt = sysdate
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518101
Edgar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

спасибо. дело в том что текущая дата будет формировать имя таблицы из которой пойдет выборка. Так что мне действительно нужен динамический запрос.

Код: sql
1.
L_SQL := 'select * from DETAIL_' || to_char ( sysdate, 'YYYYMMDD' );' ;
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518115
georgy_g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в .bat :

C:\sqlplus user/pass@DB @batch.sql %date% > output.txt
%date% - системная дата
> output.txt - вывод в файл output.txt
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518118
grok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EdgarПривет ребята.
Подскажите пожалуйста как запустить динамический SQL из под пакета, и чтобы результат выдавался в файл?
Что то наподобие
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SPOOL RESULTS.TXT

L_SQL VARCHAR(2000);

L_SQL := 'select * from TABLE1';
EXECUTE IMMEDIATE L_SQL;

SPOOL OFF



где тут у меня ошибка?

в порядке бреда
загнать запрос(ы?) в pipelined функцию, в скрипте селектить из неё
это позволит использовать средства форматирования sql-plus при выводе
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518126
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edgarак что мне действительно нужен динамический запрос.
substitution variables
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518127
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edgar,

https://oracle-base.com/articles/9i/generating-csv-files

раздел PL/SQL, остаеться только найти способ получить файлы с сервера ... :)
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518128
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edgarдело в том что текущая дата будет формировать имя таблицы из которой пойдет выборка. Так что мне действительно нужен динамический запрос.Тебе нужно изучать инструмент.
RTFM Using Substitution Variables (FAQ)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> column dt_ new_value dt noprint
SQL> set feed off
SQL> select to_char(sysdate, 'yyyymmdd') as dt_ from dual;



SQL> select * from detail_&dt;
select * from detail_20170908
              *
ERROR at line 1:
ORA-00942: table or view does not exist

...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518154
GOSTь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Текст скрипта:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
accept table_name prompt 'Table-Name: '

SPOOL RESULTS.TXT

select * from &table_name where rownum < 4;

SPOOL OFF


Результат:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> @D:\SQL\dyn_tabname.sql
Table-Name: dual
old   1: select * from &table_name where rownum < 4
new   1: select * from dual where rownum < 4

D
-
X

SQL>
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518179
Edgar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Большое спасибо за совет. Вы мне помогли.
Подскажите пожалуйста как подавить вывод нижеследующий строк в начале спулинга?

Код: plaintext
1.
old   1: select * from detail_&dt where 1<>1
new   1: select * detail_20170908 where 1<>1


Cпасибо
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518181
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edgarкак подавить выводRTFM set ver
...
Рейтинг: 0 / 0
Dynamic SQL in the batch
    #39518184
Edgar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,
Спасибо, нашел
Код: plaintext
set verify off
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Dynamic SQL in the batch
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]