Когда вы объявляете курсор для вашего цикла, вы не используете предложение into.
Если вы действительно хотите поместить их в переменные, вы можете выполнить присваивание в цикле следующим образом ...
v_site := item.site;
В противном случае просто используйте переменную элемента, которую вы объявили в своем цикле, как показано ниже
SET SERVEROUTPUT ON SIZE 1000000;
DECLARE
n_counter NUMBER := 0;
BEGIN
FOR item IN (
SELECT
s.site
,s.client
,p.name_comment
,s.identification
,to_char(s.last_print, 'DD/MM/RRRR HH24:MM:SS')
FROM
is_spool_dir s
,is_prints_name p
WHERE
to_char(s.last_print, 'DD/MM/YYYY') like '18/01/2019'
and s.site = '7'
and s.client = 'BREV'
and s.identification like 'BREZ%'
and p.id = s.report_id
ORDER BY
to_char(s.last_print, 'DD/MM/YYYY'))
LOOP
n_counter := n_counter + 1;
DBMS_OUTPUT.PUT_LINE(n_counter);
DBMS_OUTPUT.PUT_LINE(item.v_site ||','|| item.v_client ||','|| item.v_name ||','|| item.v_id ||','|| item.v_date);
IF n_counter = 1000 THEN
EXIT;
END IF;
END LOOP;
END;
Схема имеет процедуру read
для чтения s-выражений от входного порта и можно преобразовать строку для ввода потока с string->input-port
. Так, можно считать объект Схемы из строки с
(read (string->input-port "(1 (0) 1 (0) 0)"))
Мне не установили Схему, таким образом, я только считал ее из ссылки и на самом деле не протестировал ее.
Из руководства Схемы PLT:
(open-input-string string [name-v])
создает входной порт, который читает байты из кодировки UTF-8 (см. раздел 1.2.3) строки. Дополнительное name-v
аргумент используется в качестве названия возвращенного порта; значение по умолчанию 'string
.
От этого подобного вопроса на comp.lang.scheme можно сохранить строку в файл, затем считанный из него.
Это могло бы пройти примерно так пример кода:
(let ((my-port (open-output-file "Foo")))
(display "(1 (0) 1 (0) 0)" my-port)
(close-output-port my-port))
(let* ((my-port (open-input-file "Foo"))
(answer (read my-port)))
(close-input-port my-port)
answer)
Много схем имеют with-input-from-string str thunk
это выполняется thunk
в контексте, где str
стандартный входной порт. Например, в схеме гамбита:
(with-input-from-string "(foo bar)" (lambda () (read)))
оценивает к:
(foo bar)
Лямбда необходима потому что a thunk
должна быть процедура, берущая аргументы.