powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sqlplus параметры
6 сообщений из 6, страница 1 из 1
sqlplus параметры
    #40056223
Фотография Шведков Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Кто подскажет, как выполнить запрос в исполняемом .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
sqlplus параметры
    #40056230
Фотография 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
sqlplus параметры
    #40056239
Фотография SeaGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
sqlplus параметры
    #40056244
Фотография Шведков Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
sqlplus параметры
    #40056259
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шведков Артем,

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

......
stax
...
Рейтинг: 0 / 0
sqlplus параметры
    #40056751
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шведков Артем
Привет!
Кто подскажет, как выполнить запрос в исполняемом .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
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sqlplus параметры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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