powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Об использовании bind переменных в sql скриптах и спуллинге...
8 сообщений из 8, страница 1 из 1
Об использовании bind переменных в sql скриптах и спуллинге...
    #32146094
Саша Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, несколько вопросов:

1. При спуле в файл выхода из sqlplus( используем скрипт и привязанными переменными) получаем:

old 1: select File_name from dba_data_files where tablespace_name ='&1'
new 1: select File_name from dba_data_files where tablespace_name ='XDB'

M:\ORADATA\OPER1\XDB01.DBF

НУЖНО избавится от спула описания привязки параметров вызова к переменным.

2. Если вызываемый скрипт содержит анонимный блок (пример:

declare
vol varchar2(100);
begin
select File_name into vol from dba_data_files where tablespace_name ='XDB';
end;
--exit;
)
то, вместо выполнения скрипта с таким блоком,я получаю пригашение плюса, в виде последовательного перебора чисел, например:

I:\rem>st r sel_1 XDB

I:\rem>sqlplus /nolog @r.sql sel_1 XDB

SQL*Plus: Release 9.2.0.1.0 - Production on Tue Apr 22 05:22:32 2003

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected.
12
13
14
15 /
old 5: select File_name into vol from dba_data_files where tablespace_name ='&1';
new 5: select File_name into vol from dba_data_files where tablespace_name ='XDB';
spool off;
*
ERROR at line 10:
ORA-06550: line 10, column 1:
PLS-00103: Encountered the symbol "SPOOL"


SQL>

в примере, после первого числа (12) я нажимал ввод, а после последнего /

потом мы видем привязку переменных, а затем (вместо выполнения селеста) управление возвращается в вызывающий скрипт.

Вопрос: почему так получается, как это обойти... Execute_immediate ?
...
Рейтинг: 0 / 0
Об использовании bind переменных в sql скриптах и спуллинге...
    #32146102
_kozyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1 - SET VER[IFY] OFF
...
Рейтинг: 0 / 0
Об использовании bind переменных в sql скриптах и спуллинге...
    #32146108
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Саша Питерский:
я бы для начала( на твоём месте) определился для себя что такое "bind-переменные" они же переменные привязки и что такое переменные подстановки и разобрался бы в чём между ними разница.

А уже потом писал бы скрипты, и задавал вопросы.
...
Рейтинг: 0 / 0
Об использовании bind переменных в sql скриптах и спуллинге...
    #32146150
Саша Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а по теме можешь чего сказать ?
...
Рейтинг: 0 / 0
Об использовании bind переменных в sql скриптах и спуллинге...
    #32146160
_kozyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 - Вероятно в конце анонимного блока скрипта SQL*Plus упущен "/"

Код: plaintext
1.
2.
3.
4.
5.
DECLARE
 ....
BEGIN
 ...
END;
/
...
Рейтинг: 0 / 0
Об использовании bind переменных в sql скриптах и спуллинге...
    #32146163
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть предположение, что у тебя скрипт r.sql неправильно написан.
Если скрипт небольшой, то здесь опубликуй иначе мне пришли на email в zip.
...
Рейтинг: 0 / 0
Об использовании bind переменных в sql скриптах и спуллинге...
    #32146168
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цифры - просто переход SQLPlus на новую строку. После end; на следующей строке нет /. Поэтому SQLPlus и не понимает, когда ему послать PL/SQL блок на сервер.

Должно быть так:

declare
vol varchar2(100);
begin
select File_name into vol from dba_data_files where tablespace_name ='XDB';
end;
/
exit;

Чтобы не появлялось

old 1: select File_name from dba_data_files where tablespace_name ='&1'
new 1: select File_name from dba_data_files where tablespace_name ='XDB'

надо поставить, как тут рекомендовалось

SET VERIFY OFF

Во всем остальном вопрос абсолютно непонятен. Что надо сделать скриптом?
...
Рейтинг: 0 / 0
Об использовании bind переменных в sql скриптах и спуллинге...
    #32146170
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А softbuilder как раз по делу - в данном случае используются
не bind-переменные а самая обычная макроподстановка.
И ответ в 99% процентах уже есть - set verify off.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Об использовании bind переменных в sql скриптах и спуллинге...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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