Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ora-01008, как узнать имя переменной? / 12 сообщений из 12, страница 1 из 1
04.07.2016, 09:03
    #39267104
Egoр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
Доброго времени суток, ALL!

У меня несколько SQL-запросов с bind variables, которые запускаются с помощью DBMS_sql.
Есть ли способ попросить Oracle сообщить имена всех переменных, которые он обнаружил в тексте SQL-запроса, после DBMS_sql.parse?
...
Рейтинг: 0 / 0
04.07.2016, 09:48
    #39267130
Бобр добра
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
есть
...
Рейтинг: 0 / 0
04.07.2016, 10:25
    #39267142
mlc
mlc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
Egoр,

DBA_HIST_SQL_BIND_METADATA
...
Рейтинг: 0 / 0
04.07.2016, 10:31
    #39267145
JaRo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
А что вы будете подставлять в неизвестные переменные? Всё равно ведь жестко зашитый набор.
...
Рейтинг: 0 / 0
04.07.2016, 10:57
    #39267160
Egoр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
mlcDBA_HIST_SQL_BIND_METADATA Как определить sql_id для курсора, открытого через DBMS_sql?
JaRoА что вы будете подставлять в неизвестные переменные? Всё равно ведь жестко зашитый набор.Есть коллекция index by varchar2, в которой есть значения для переменных.
Для тех переменных, которых нет в коллекции, - null.
...
Рейтинг: 0 / 0
04.07.2016, 11:54
    #39267210
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
EgoрЕсть ли способ попросить Oracle сообщить имена всех переменных, которые он обнаружил в тексте SQL-запроса, после DBMS_sql.parse?
WWV_FLOW_UTILITIES.get_binds. Можно посмотреть, что внутри, и написать самому подобное.
...
Рейтинг: 0 / 0
04.07.2016, 12:03
    #39267220
mlc
mlc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
EgoрmlcDBA_HIST_SQL_BIND_METADATA Как определить sql_id для курсора, открытого через DBMS_sql?

Код: plsql
1.
2.
3.
4.
5.
select --+ get sql_id
  sql_id
from v$sql
where dbms_lob.compare(sql_fulltext, your_opened_cursor) = 0
  and to_date(last_load_time, 'yyyy-mm-dd/hh24:mi:ss') > sysdate - interval '5' minute;
...
Рейтинг: 0 / 0
04.07.2016, 12:29
    #39267240
Egoр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
mlc,

Что-то подобное я уже попробовал. Через sqltext_to_signature.
Но, увы, это долго.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
03.08.2020, 22:48
    #39986261
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
коллеги, подскажите вменяемый метод поиска биндов в sql-запросе
Оракл-11

могу, например, из делфового ДОА достать и перевести в нужный мне язык...
там есть function FindVariables(const SQL: string; IncludeDuplicates: Boolean): TStringList;

но зачем городить велосипед... вдруг задача уже решена средствами самого Оракла, а я не нашёл
...
Рейтинг: 0 / 0
03.08.2020, 22:55
    #39986262
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
andreymx
коллеги, подскажите вменяемый метод поиска биндов в sql-запросе
Оракл-11

могу, например, из делфового ДОА достать и перевести в нужный мне язык...
там есть function FindVariables(const SQL: string; IncludeDuplicates: Boolean): TStringList;

но зачем городить велосипед... вдруг задача уже решена средствами самого Оракла, а я не нашёл
https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:9529847800346668642

что-то самописно-наколенное на АскТоме
...
Рейтинг: 0 / 0
04.08.2020, 00:39
    #39986275
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
andreymxвдруг задача уже решена средствами самого Оракла

Препарируешь запрос, вызываешь OCIStmtGetBindInfo().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.08.2020, 01:54
    #39990004
Кобанчег
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-01008, как узнать имя переменной?
andreymx
вдруг задача уже решена средствами самого Оракла
Посмотри в v$sql_bind_capture/v$sql_bind_metadata после выполнения dbms_sql.parse + dbms_sql.describe_columns.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ora-01008, как узнать имя переменной? / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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