|
|
|
Об использовании bind переменных в sql скриптах и спуллинге...
|
|||
|---|---|---|---|
|
#18+
Коллеги, несколько вопросов: 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 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2003, 16:28 |
|
||
|
Об использовании bind переменных в sql скриптах и спуллинге...
|
|||
|---|---|---|---|
|
#18+
1 - SET VER[IFY] OFF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2003, 16:33 |
|
||
|
Об использовании bind переменных в sql скриптах и спуллинге...
|
|||
|---|---|---|---|
|
#18+
to Саша Питерский: я бы для начала( на твоём месте) определился для себя что такое "bind-переменные" они же переменные привязки и что такое переменные подстановки и разобрался бы в чём между ними разница. А уже потом писал бы скрипты, и задавал вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2003, 16:39 |
|
||
|
Об использовании bind переменных в sql скриптах и спуллинге...
|
|||
|---|---|---|---|
|
#18+
а по теме можешь чего сказать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2003, 17:12 |
|
||
|
Об использовании bind переменных в sql скриптах и спуллинге...
|
|||
|---|---|---|---|
|
#18+
2 - Вероятно в конце анонимного блока скрипта SQL*Plus упущен "/" Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2003, 17:21 |
|
||
|
Об использовании bind переменных в sql скриптах и спуллинге...
|
|||
|---|---|---|---|
|
#18+
У меня есть предположение, что у тебя скрипт r.sql неправильно написан. Если скрипт небольшой, то здесь опубликуй иначе мне пришли на email в zip. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2003, 17:23 |
|
||
|
Об использовании bind переменных в sql скриптах и спуллинге...
|
|||
|---|---|---|---|
|
#18+
Цифры - просто переход 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 Во всем остальном вопрос абсолютно непонятен. Что надо сделать скриптом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2003, 17:25 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2786&tid=1990870]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 418ms |

| 0 / 0 |
