Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 sqlplus: Можно ли считать файл в переменную?  [new]
iluxer
Member

Откуда:
Сообщений: 48
Имеется bind переменная типа CLOB или VARCHAR2
Можно ли считать в неё данные из файла ?
Спасибо
27 янв 09, 23:44    [6745280]     Ответить | Цитировать Сообщить модератору
 Re: sqlplus: Можно ли считать файл в переменную?  [new]
wildwind
Member

Откуда: Москва
Сообщений: 1296
iluxer,

Если файл не очень большой, можно попробовать трюк с добавлением в начало
begin :clobvar := '
и в конец
'; end;
/
и затем run
28 янв 09, 01:35    [6745504]     Ответить | Цитировать Сообщить модератору
 Re: sqlplus: Можно ли считать файл в переменную?  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
iluxer
Имеется bind переменная типа CLOB или VARCHAR2
Можно ли считать в неё данные из файла ?
Спасибо


А почему нет? PL/SQL и UTL_FILE в помощь.

DECLARE
targetFile utl_file.file_type; 
v_buffer varchar2 (32767);
BEGIN
  targetFile := utl_file.fopen ('TEST_DIR1_ORA', 'file.txt' ,'R');
  utl_file.get_line (targetFile,v_buffer);
  utl_file.fclose(targetFile);
  :bind_variable:=v_buffer;
END;
28 янв 09, 01:39    [6745512]     Ответить | Цитировать Сообщить модератору
 Re: sqlplus: Можно ли считать файл в переменную?  [new]
Elic
Member

Откуда:
Сообщений: 29990
iluxer
Имеется bind переменная типа CLOB или VARCHAR2
Можно ли считать в неё данные из файла ?
В SQL*Plus-е локальный файл до 32к можно "прочитать" так:
declare
  s varchar2(32767) := '
@@c:\boot.ini
';
begin
  dbms_output.put_line('================================');
  dbms_output.put_line(substr(s, 1, 256));
  dbms_output.put_line('================================');
end;
/

================================

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect

================================
28 янв 09, 08:48    [6745755]     Ответить | Цитировать Сообщить модератору
 Re: sqlplus: Можно ли считать файл в переменную?  [new]
iluxer
Member

Откуда:
Сообщений: 48
UTL_FILE не подходит

Alexander Ryndin, @@c:\boot.ini - не сработало
В переменной s находится значение @@c:\boot.ini, а не содержимое файла
28 янв 09, 12:22    [6747031]     Ответить | Цитировать Сообщить модератору
 Re: sqlplus: Можно ли считать файл в переменную?  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
iluxer
UTL_FILE не подходит

Alexander Ryndin, @@c:\boot.ini - не сработало
В переменной s находится значение @@c:\boot.ini, а не содержимое файла


1. почему?
2. покажи, как не сработало
3. если CLOB, можно еще глянуть на dbms_lob
28 янв 09, 12:29    [6747077]     Ответить | Цитировать Сообщить модератору
 Re: sqlplus: Можно ли считать файл в переменную?  [new]
Elic
Member

Откуда:
Сообщений: 29990
iluxer
@@c:\boot.ini - не сработало
В переменной s находится значение @@c:\boot.ini, а не содержимое файла
Версия SQL-Plus-а? OC?
28 янв 09, 12:32    [6747098]     Ответить | Цитировать Сообщить модератору
 Re: sqlplus: Можно ли считать файл в переменную?  [new]
iluxer
Member

Откуда:
Сообщений: 48
Понял.
@@ должна быть обязятельно как отдельная строка - так сработало
Спасибо.
28 янв 09, 13:17    [6747547]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить