Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sqlplus параметры / 6 сообщений из 6, страница 1 из 1
23.03.2021, 13:30
    #40056223
Шведков Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlplus параметры
Привет!
Кто подскажет, как выполнить запрос в исполняемом .sql файле, переданный в качестве параметра? и чтобы результат запроса ушел в spool файл.

Пример:
в .bat файле:
sqlplus usr/pwd@tnsname @"E:/run.sql" "select * from table1"

внутри run.sql через &1 и @&1 -- никак не получается запустить запрос.
причем prompt &1 -- отображает весь запрос нормально, но если делать через DEF v_sql = &1, то в &v_sql записывается только первое слово до пробела "select" и всё.

SQL*Plus: Release 12.2.0.1.0
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

-------------------------------------------------------------------
<br/> И один генерал, по TV сказал
<br/> Что на Марсе, не будет with..
...
Рейтинг: 0 / 0
23.03.2021, 13:51
    #40056230
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlplus параметры
Шведков Артем,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> @"C:\X\2.sql" "select * from dept";
old   1: select * from (&1)
new   1: select * from (select * from dept)

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON



.....
stax
...
Рейтинг: 0 / 0
23.03.2021, 14:10
    #40056239
SeaGate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlplus параметры
Код: plsql
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.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
[oracle@server ~]$ cat run.sql
def v_sql="&1"

doc
################################################################################
#  1
################################################################################
#

1 &v_sql.
/

doc
################################################################################
#  spool
################################################################################
#
set ver off
spo tmp.sql
pro &v_sql.
spo off

get tmp.sql nolist
/

doc
################################################################################
#  select * from
################################################################################
#

select * from (
&v_sql.
)
/

[oracle@server ~]$ sqlplus tc/tc@localhost/pdb @run.sql "select * from table1"

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Mar 23 11:09:22 2021
Version 19.10.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.

Last Successful login time: Tue Mar 23 2021 11:04:37 +00:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.10.0.0.0

DOC>################################################################################
DOC>#  1
DOC>################################################################################
DOC>#
old   1: &v_sql.
new   1: select * from table1

C
--------------------------------------------------------------------------------
И один генерал, по TV сказал
Что на Марсе, не будет with..


DOC>################################################################################
DOC>#  spool
DOC>################################################################################
DOC>#
select * from table1

C
--------------------------------------------------------------------------------
И один генерал, по TV сказал
Что на Марсе, не будет with..


DOC>################################################################################
DOC>#  select * from
DOC>################################################################################
DOC>#

C
--------------------------------------------------------------------------------
И один генерал, по TV сказал
Что на Марсе, не будет with..
...
Рейтинг: 0 / 0
23.03.2021, 14:20
    #40056244
Шведков Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlplus параметры
Stax
Шведков Артем,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> @"C:\X\2.sql" "select * from dept";
old   1: select * from (&1)
new   1: select * from (select * from dept)

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON


.....
stax

Семён Семёныч... спасибо! Так заработало)
осталось узнать лимит передаваемой строки в качестве параметра..
...
Рейтинг: 0 / 0
23.03.2021, 14:47
    #40056259
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlplus параметры
Шведков Артем,

имхо
от ос зависит, но очень мало

......
stax
...
Рейтинг: 0 / 0
25.03.2021, 00:18
    #40056751
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlplus параметры
Шведков Артем
Привет!
Кто подскажет, как выполнить запрос в исполняемом .sql файле, переданный в качестве параметра? и чтобы результат запроса ушел в spool файл.

Пример:
в .bat файле:
sqlplus usr/pwd@tnsname @"E:/run.sql" "select * from table1"

внутри run.sql через &1 и @&1 -- никак не получается запустить запрос.
причем prompt &1 -- отображает весь запрос нормально, но если делать через DEF v_sql = &1, то в &v_sql записывается только первое слово до пробела "select" и всё.

дока по SQL*PlusYou can use substitution variables anywhere in SQL and SQL*Plus commands,
except as the first word entered .


Другой вариант вызова:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
--- run.sql начало ---
SET ECHO ON;

WITH my_tab AS (&1)
--
SELECT * FROM my_tab;
--- run.sql конец ---

С:\>sqlplus myuser/mypwd@mydb @run.sql "SELECT 'KUKU' as txt FROM dual"                                                                                                                                                                                                                                                                                                                                                  
 ...
SQL> WITH my_tab AS (&1)
  2  --
  3  SELECT * FROM my_tab;
old   1: WITH my_tab AS (&1)
new   1: WITH my_tab AS (SELECT 'KUKU' as txt FROM dual)

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


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