Я хочу извлечь данные BLOB и записать из них файл (предполагаю, что это должен быть excel, txt или любой другой). В одной ячейке может быть до 60 тыс. символов. Я хотел написать скрипт, который считывает всю таблицу с данными BLOB и записывает их в файл. В приведенном ниже коде ROWNUM работает только для одной строки. какая альтернатива? Или есть другой скрипт, который может помочь мне достичь моей конечной цели - прочитать BLOB и записать файл?
SET SERVEROUTPUT ON;
DECLARE
TotalRows NUMBER;
TotalChar NUMBER;
CharCounter NUMBER;
BEGIN
SELECT count(*) INTO TotalRows FROM <TableName>;
--dbms_output.Put_line(RC);
--END;
FOR RC IN 1..TotalRows
LOOP
-----------------Code for Rows starts--------------------------------------------------------------------------------
dbms_output.Put_line('Row '||RC||' Started.');
SELECT Length(<ColumnWithBLOBDataType>) INTO TotalChar FROM <TableName> where **Rownum = RC**;
dbms_output.Put_line('Crossed Char counting query. TotalChar='||TotalChar);
CharCounter:=TotalChar/2000+1;
dbms_output.Put_line('Loop will run these many times= '||CharCounter|| ' and Total Chars=' ||TotalChar);
For CC IN 1..CharCounter
LOOP
dbms_output.Put_line('Trip: '||CC);
END LOOP;
-----------------Code for Rows Ends----------------------------------------------------------------------------------------
TotalChar :=0;
dbms_output.Put_line('Row '|| RC||' Done. TotalChar='|| TotalChar);
END LOOP;
dbms_output.Put_line('Exited loop 1.');
END;
CLOB
может быть лучшим типом данных, чемBLOB
, который предназначен для двоичных данных. - person wolφi   schedule 04.07.2018CREATE TABLE mybefore AS SELECT * FROM mytable
. После изменения я бы сравнил таблицу mybefore и mytable, чтобы SQL мог определить, какие ячейки изменились... - person wolφi   schedule 04.07.2018diff
сравнение, но я не знаю ни одного. - person wolφi   schedule 05.07.2018