Я использовал его для редактирования файлов на веб-сервере, который был Linux вместо того, чтобы использовать FTP. Это было 9 лет назад, и я с тех пор приобрел навыки.
другой вещью является находка что-то большое, которое можно сделать в VI таких как расширенный поиск и замена или чем-то еще более мощном, и использовать VI каждый раз, когда необходимо сделать это.
Вы можете легко распечатать результаты вывода ref_cursor в SQL Developer, чтобы увидеть возвращаемое значение...
Вот пример функции рефкурсора:
create or replace function get_employees() return sys_refcursor as
ret_cursor sys_refcursor;
begin
open ret_cursor for
select * from employees;
return ret_cursor;
end get_employees;
Быстрый и грязный метод:
select get_employees() from dual;
Аккуратный и опрятный метод:
variable v_ref_cursor refcursor;
exec :v_ref_cursor := get_employees();
print :v_ref_cursor
Здесь нет ничего сложного; Вы можете увидеть, возникает ли ваша ошибка в коде sp или yor? Если вы не можете понять это напрямую, определите sp из имеющегося у вас кода, установите точку останова и просмотрите код, чтобы увидеть, откуда возникла ошибка.
Вы можете увидеть, возникает ли ваша ошибка в коде sp или yor? Если вы не можете понять это напрямую, определите sp из имеющегося у вас кода, установите точку останова и просмотрите код, чтобы увидеть, откуда возникла ошибка. Просто создайте цикл, который проходит через возвращенный указатель ref. Вы можете выводить данные на консоль, используя DBMS_OUTPUT.PUT_LINE ()
и выбирая определенные поля для отображения.
There's no way to tell without seeing what the cursor's query is. Take a look at the SELECT statement you're running in the procedure SP. One of the column's you are selecting into a numeric field in rec_type is returning character data, which cannot be converted to a number.
Instead of trying to figure out how to output the cursor, take the SELECT statement from sp and run it standalone. Look down the results you get. You're going to be looking for some non-digit values coming back in one of the fields where you expect a number.
В своем комментарии вы говорите Вот ошибка:
ORA-06502: PL/SQL: numeric or value ошибка ORA-06512: at line 16
Как бы ни казалось иногда, ошибки PL/SQL не генерируются случайно. Эта ошибка указывает на ошибочное преобразование типа данных, которое происходит в строке 16 вашей процедуры. Не видя всей вашей процедуры, мы не можем точно определить строку 16. К счастью, редактор кода в SQL Developer помещает номера строк в желоб; если вы не видите номеров строк, вам нужно переключить предпочтение.
Что вам нужно искать, так это приведение строки к числовой переменной или переменной даты, или приведение числа к полю даты. Об этом может сигнализировать явное TO_NUMBER() или TO_DATE, в этом случае необходимо проверить маску формата и/или содержимое данных. В качестве альтернативы вы можете иметь неявное приведение. В этом случае вам может понадобиться сделать его явным, с соответствующей маской формата. Конечно, это может быть случайное и нежелательное преобразование, потому что проекция оператора SELECT не совпадает с сигнатурой записи REF CURSOR. Это легко исправить.