Длинный варчар в варчар Ingres DB
У меня есть INGRES DB 10.0
У меня есть переменная с типом данных LONG VARCHSR. в котором пользователи представляют длинную строку, тогда у меня есть цикл while, который берет +2000 символов из этой строки и помещает его в таблицу, где столбец имеет тип данных varchar (255). когда я пытаюсь скомпилировать эту процедуру, я получаю сообщение об ошибке E_US0971 Target list expression of type 'long varchar' cannot be coerced into local variable/parameter of type 'varchar'
вот мой цикл
:notelinenumber = 1;
:i = 1;
WHILE :i < LENGTH(:note_text)
do
select SUBSTRING (:note_text, :i, 1900) into :note_part;
INSERT INTO NOTE
(note_number,
note_line_number,
note_date_stamp,
note_text)
VALUES ( :note_number,
:notelinenumber,
Date( 'now' ),
:note_part);
:i = :i+1900;
:notelinenumber = :notelinenumber+1;
ENDWHILE;
здесь :note_text
= тип данных long varchar, но note_part
= varchar (255).
Как я могу преобразовать ту часть, которую я получил из цикла while из long varchar, в varchar (255)?
1 ответ
Ответить было так просто, просто нужно конвертировать длинный varchar в varchar
:notelinenumber = 1;
:i = 1;
WHILE :i < LENGTH(:note_text)
do
select varchar( SUBSTRING (:note_text, :i, 1900)) into :note_part;
INSERT INTO NOTE
(note_number,
note_line_number,
note_date_stamp,
note_text)
VALUES ( :note_number,
:notelinenumber,
Date( 'now' ),
:note_part);
:i = :i+1900;
:notelinenumber = :notelinenumber+1;
ENDWHILE;