powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SqlPlus переменное количество параметров
11 сообщений из 11, страница 1 из 1
SqlPlus переменное количество параметров
    #33880683
Soloboev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Подскажите пожалуйста: надо сделать репорт для выполнения в sqlplus. В репорт передаются два параметра имя файла отчета и значение некого поля. Значение этого поля необязательное, то есть может передаваться в репорт, а может и не передаваться. В зависимости от того, есть ли этот параметр, в файл отчета должно выводиться разное количество колонок. Заранее спасибо! :)
...
Рейтинг: 0 / 0
SqlPlus переменное количество параметров
    #33880767
TRM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRM
Гость
Без динамики по-человечески не сделаешь - 100%.

Вариант есть (полный изврат, но тем не менее) - описываю идею, дальше, думаю, - все это воплотить труда не составит:

1. Пишешь блок PLSQL, который в зависимости от передаваемых переменных подстановки (связанных переменных SQL*Plus) формирует строку, типа:
Код: plaintext
1.
2.
...
v_string := 'SELECT|| число_полей_в_зависимости_от_условий ||FROM...
...
2. Дальше, спулишь (здесь скорее всего потребуется также использование переменных подстановки/связанных переменных SQL*Plus) в файл полученную команду, после чего этот файл запускаешь.

Получается следующее:

- запуск PLSQL блока, в котором формируется строка.
- spool temp_file.sql
- print v_string
- spool off
- @temp_file.sql

Надеюсь, поможет.
...
Рейтинг: 0 / 0
SqlPlus переменное количество параметров
    #33880774
contr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRMБез динамики по-человечески не сделаешь - 100%.
Динамика динамике рознь :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Connected to:
Oracle9i Enterprise Edition Release  9 . 2 . 0 . 7 . 0  - 64bit Production
With the Partitioning option
JServer Release  9 . 2 . 0 . 7 . 0  - Production

SQL> define ColumnList = "rownum VAL1, dummy VAL2"
SQL> select &ColumnList from dual;
old    1 : select &ColumnList from dual
new    1 : select rownum VAL1, dummy VAL2 from dual

      VAL1 V
---------- -
          1  X

SQL> select & 1  from dual;
Enter value for  1 :  123  as Z
old    1 : select & 1  from dual
new    1 : select  123  as Z from dual

         Z
----------
        123 

SQL>
...
Рейтинг: 0 / 0
SqlPlus переменное количество параметров
    #33880786
TRM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRM
Гость
contr
Динамика динамике рознь :)
Красиво! Но переменную ColumnList надо как-то заполнять. Варьируемое число выходных полей все же.
...
Рейтинг: 0 / 0
SqlPlus переменное количество параметров
    #33880790
contr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRM contr
Динамика динамике рознь :)
Красиво! Но переменную ColumnList надо как-то заполнять. Варьируемое число выходных полей все же.
Ну где творческое мышление?
Код: plaintext
select &ColumnList &ColumnList2 from dual;
Не помню аббревиатуру для параметров командной строки, гляньте, наконец, в доку...
...
Рейтинг: 0 / 0
SqlPlus переменное количество параметров
    #33880799
contr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, кстати, и по форуму пробегало ...
...
Рейтинг: 0 / 0
SqlPlus переменное количество параметров
    #33880814
TRM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TRM
Гость
contrНу где творческое мышление?На время глянь - какое может быть творчество ;)

На самом деле с примером выше мы все равно возвращаемся к варианту, что требуется сформировать или список колонок или у всех колонок кроме последней проставить запятые.
...
Рейтинг: 0 / 0
SqlPlus переменное количество параметров
    #33880821
contr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRMНа самом деле с примером выше мы все равно возвращаемся
На самом деле:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
Connected to:
Oracle9i Enterprise Edition Release  9 . 2 . 0 . 7 . 0  - 64bit Production
With the Partitioning option
JServer Release  9 . 2 . 0 . 7 . 0  - Production

SQL> define StaticColumnList = "rownum VAL1, dummy VAL2"
SQL> define VarColumnList = ''
SQL> column VarColumnList new_value VarColumnList noprint
SQL> select decode(& 1 ,'1',', rownum*10-100 VAR1','') VarColumnList from dual;
Enter value for  1 :  100 
old    1 : select decode(& 1 ,'1',', rownum*10-100 VAR1','') VarColumnList from dual
new    1 : select decode( 100 ,'1',', rownum*10-100 VAR1','') VarColumnList from dual




SQL> select &StaticColumnList &VarColumnList from dual;
old    1 : select &StaticColumnList &VarColumnList from dual
new    1 : select rownum VAL1, dummy VAL2  from dual

      VAL1 V
---------- -
          1  X

SQL> select decode(& 2 ,'1',', rownum*10-100 VAR1','') VarColumnList from dual;
Enter value for  2 :  1 
old    1 : select decode(& 2 ,'1',', rownum*10-100 VAR1','') VarColumnList from dual
new    1 : select decode( 1 ,'1',', rownum*10-100 VAR1','') VarColumnList from dual




SQL> select &StaticColumnList &VarColumnList from dual;
old    1 : select &StaticColumnList &VarColumnList from dual
new    1 : select rownum VAL1, dummy VAL2 , rownum* 10 - 100  VAR1 from dual

      VAL1 V       VAR1
---------- - ----------
          1  X        - 90 

SQL>
...
Рейтинг: 0 / 0
SqlPlus переменное количество параметров
    #33881811
Soloboev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поясняю. Отчет запускается с консоли командой типа
/opt/oracle/product/10.2/db_1/bin/sqlplus -s user/password@Orcl @./proba.sql ddd.out
или
/opt/oracle/product/10.2/db_1/bin/sqlplus -s user/password@Orcl @./proba.sql ddd.out 100
Речь идет именно о параметрах командной строки. В отчете они используются:
define VAR1 = &1
define VAR2 = &2
Нужен способ, чтобы VAR2 задавалась как-то по другому, необязательным запросом параметра командной строки. Потому что, если я опускаю второй параметр призапуске отчета, программа ждет его ввода с консоли. Все вышеописанное, несмотря на его изящество, мало мне подходит. :)
...
Рейтинг: 0 / 0
SqlPlus переменное количество параметров
    #33881907
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoloboevНужен способ, чтобы VAR2 задавалась как-то по другому, необязательным запросом параметра командной строки. Потому что, если я опускаю второй параметр призапуске отчета, программа ждет его ввода с консоли.Передавай два параметра как один:
Код: plaintext
1.
proba.sql "ddd.out"
proba.sql "ddd.out 100"
А в скрипте разбери его на два.
...
Рейтинг: 0 / 0
SqlPlus переменное количество параметров
    #33882380
Всегда!!!!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoloboevВсем привет! Подскажите пожалуйста: надо сделать репорт для выполнения в sqlplus. В репорт передаются два параметра имя файла отчета и значение некого поля. Значение этого поля необязательное, то есть может передаваться в репорт, а может и не передаваться. В зависимости от того, есть ли этот параметр, в файл отчета должно выводиться разное количество колонок. Заранее спасибо! :)

Смотри здесь

В файле nvl.sql нужно подправить значение переменной del для удаления файла согласно твоей операционке.

скрипт должен начинаться как то так:

DEFINE nvl_name = '&2'
DEFINE nvl_value = 'Not Defined'
START nvl.sql

Дальше можешь быть уверен, что параметр &2 определен
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SqlPlus переменное количество параметров
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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