我试图通过dbms_Sql包检索员工的名字,姓氏和工资。以下代码已成功执行,但未打印任何详细信息。
例外输出:
阿图尔王15000
................
jimmy fallon 16000
当前输出:
PL / 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 :(得分:0)
我使用的是dbms_Sql.define_colum而不是dbms_Sql.column_value。 替换它现在工作正常。