2016-10-19 3 views
3

Я учусь курсоры, и я не могу напечатать логическое значение вdbms_output не может печатать boolean?

dbms_output.put_line(); 

Код

DECLARE 
CURSOR c_employees_3i is 
SELECT * FROM employees_3i; 
row_count BOOLEAN; 
BEGIN 
OPEN c_employees_3i; 
row_count := c_employees_3i%isopen; 
Dbms_Output.put_line(bool_to_text(row_count)); 
CLOSE c_employees_3i; 
END; 

Я получаю эту ошибку

ORA-06550: line 8, column 22: 
PLS-00201: identifier 'BOOL_TO_TEXT' must be declared 
ORA-06550: line 8, column 1: 
PL/SQL: Statement ignored 

Пожалуйста, помогите мне исправить ошибку , Спасибо

ответ

10

Функция bool_to_text не существует (и AFAIK, Oracle никогда не было такой функции).

Вы можете использовать diutil.bool_to_int для преобразования Boolean к Integer и печати, что:

begin 
    dbms_output.put_line(sys.diutil.bool_to_int(true)); 
end; 
+0

спасибо чувак. Он работает .. –

+0

также, когда я пытаюсь использовать количество строк. Он всегда возвращает 0, даже если в таблице есть значения .DECLARE CURSOR c_employees_3i is SELECT * FROM employees_3i; row_count NUMBER; BEGIN OPEN c_employees_3i; row_count: = c_employees_3i% rowcount; Dbms_Output.put_line (row_count); CLOSE c_employees_3i; END; –

+0

@ShreeNaath Пожалуйста, задайте отдельный вопрос для этого (после поиска на сайте похожих вопросов. Предполагаю, что это было задано раньше). –

Смежные вопросы