powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как вставить значение переменной в execute IMMEDIATE ?
3 сообщений из 3, страница 1 из 1
Как вставить значение переменной в execute IMMEDIATE ?
    #40083890
максим_1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
текущий код ниже работает
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
declare
p_file_name varchar2(100);
TYPE c_crn IS TABLE OF VARCHAR2(1000);
l_crn_tab c_crn;
begin
p_file_name:='DCO_CRN_TEST.xlsx';
select STRING_VAL bulk collect into l_crn_tab from TABLE( TABLEAU.as_read_xlsx.READ( TABLEAU.as_read_xlsx.file2blob('EXRATE',p_file_name) ) );
  end;



[/src]

А, в коде ниже возникает ошибка

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare
sql_stmt clob;
p_file_name varchar2(100);
TYPE c_crn IS TABLE OF VARCHAR2(1000);
l_crn_tab c_crn;
begin
p_file_name:='DCO_CRN_TEST.xlsx';
sql_stmt:='select STRING_VAL bulk collect into l_crn_tab from TABLE( TABLEAU.as_read_xlsx.READ( TABLEAU.as_read_xlsx.file2blob(''EXRATE'','||p_file_name||')))';

EXECUTE IMMEDIATE sql_stmt;
end;



ОШИБКА : Error report - ORA-00904: "DCO_CRN_TEST"."XLSX": недопустимый идентификатор ORA-06512: на line 10 00904. 00000 - "%s: invalid identifier"

Как сделать что бы встало название файла оператору dbms_lob.open( file_lob, dbms_lob.file_readonly )
видел без кавычек: DCO_CRN_TEST.XLSX , или не возникла ошбка ORA-06512?

Пробовал экранировать кавычку результат аналогичгный, точнее его нет :
Код: plsql
1.
sql_stmt:=q'[select STRING_VAL bulk collect into l_crn_tab from TABLE( TABLEAU.as_read_xlsx.READ( TABLEAU.as_read_xlsx.file2blob('EXRATE','||p_file_name||')))]';
...
Рейтинг: 0 / 0
Как вставить значение переменной в execute IMMEDIATE ?
    #40083894
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
максим_1991
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
declare
sql_stmt clob;
p_file_name varchar2(100);
TYPE c_crn IS TABLE OF VARCHAR2(1000);
l_crn_tab c_crn;
begin
p_file_name:='DCO_CRN_TEST.xlsx';
sql_stmt:='select STRING_VAL from TABLE( TABLEAU.as_read_xlsx.READ( TABLEAU.as_read_xlsx.file2blob(''EXRATE'',:p_file_name)))';

EXECUTE IMMEDIATE sql_stmt
bulk collect into l_crn_tab 
using p_file_name
;
end;

...
Рейтинг: 0 / 0
Как вставить значение переменной в execute IMMEDIATE ?
    #40083911
максим_1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous, помогло) Благодарю Вас) Здоровья и процветания)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как вставить значение переменной в execute IMMEDIATE ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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