2016-09-13 8 views
0

Я пытаюсь получить первое имя, фамилию и зарплату сотрудников через пакет dbms_Sql. Код ниже выполнен успешно, но данные не печатаются.
Освобожденные Выход:
король Артур 15000
................
Джимми Фэллон 16000
Выходной ток:
PL процедура/SQL успешно завершена ,нет данных в dbms_output при извлечении через DBMS_SQL

declare 
SH integer ; 
output binary_integer; 
-- 
Salary number(10) := 10000; 
l_firstname varchar2(50); 
l_lastname varchar2(50); 
l_salary number(10); 
begin 
-- 
SH := dbms_Sql.open_cursor; 
dbms_sql.parse(SH,'select first_name,last_name,salary from employees 
where salary > :salary_value',DBMS_SQL.NATIVE); 

dbms_sql.bind_variable(SH,':salary_value',salary); 

dbms_Sql.define_column(SH,1,l_firstname, 30); 
dbms_sql.define_column(sh,2,l_lastname, 30); 
dbms_sql.define_Column(sh,3,l_salary); 

output := dbms_Sql.execute(SH); 

<<dbms_Sql_loop>> 
loop 

exit when dbms_sql.fetch_Rows(SH) = 0; 

/* 
||Retrieve data 
|| 
*/ 
dbms_output.put_line(l_firstname ||' '||l_lastname||' ' || l_salary); 

dbms_Sql.define_column(SH,1,l_firstname, 30); 
dbms_sql.define_column(sh,2,l_lastname, 30); 
dbms_sql.define_Column(sh,3,l_salary); 

end loop dbms_Sql_loop; 

dbms_Sql.close_cursor(SH); 
end; 
/

ответ

0

Я использовал dbms_Sql.define_colum вместо dbms_Sql.column_value. замените его и он отлично работает.