利用oracle的動態PL SQL對簡單表示式求值

2021-04-01 03:23:50 字數 962 閱讀 5515

create or replace

function power.getrl(v_charrl

in varchar2,v_noerror

in char)

return float

isv_rl float;

v_cursorid

integer;

v_selectstmt

varchar2 (2000);

v_dummy

integer;

begin

begin

v_cursorid := dbms_sql.open_cursor;

v_selectstmt :=

'begin

select (' || v_charrl ||')

into :rl

from dual;

end;';

dbms_sql.parse(v_cursorid,v_selectstmt,dbms_sql.v7);

dbms_sql.bind_variable(v_cursorid,':rl',v_rl);

v_dummy := dbms_sql.execute(v_cursorid);

dbms_sql.variable_value(v_cursorid,':rl',v_rl);

dbms_sql.close_cursor(v_cursorid);

return v_rl;

exception

when others then

dbms_sql.close_cursor(v_cursorid);

if nvl(v_noerror,'0') <> '1'

then

else

return null;

end if;

end;

end;

/

利用oracle動態遊標實現動態SQL迴圈遍歷

create or replace procedure p test sql is type ref cursor type is ref cursor 定義一個動態遊標 tablename varchar2 200 default ess client v sql varchar2 1000 mo...

oracle利用user db like的儲存過程

create or replace procedure hello as 定義引數 得到objectid cursor cursor objectid is select id from select a1.id from resource wap data finish a1 union sele...

利用Oracle的Job Queue實現定時操作

1 確保oracle的工作模式允許啟動佇列管理器 snp程序 svrmgrl alter system enable restricted session 或 sql alter system disenable restricted session 2 確保oracle已配置任務佇列管理器的啟動引...

關於Oracle的動態查詢

本來想用儲存過程實現動態查詢,但是我們直接拼接的sql還是無法避免sql注入攻擊,並且不能使用繫結變數。思前想後還是寫了個dynamicsql的類用來實現動態拼接sql。具體的怎麼拼接通過實體的特性來實現。這個類代替我們原先的parameterclass類,用來實現動態查詢。下面大致說下特性的使用 ...

oracle 中的動態 SQL

在 pl sql 塊中,可以使用 ddl 語句和事物控制語句,但還有很多語句不能直接在 pl sql 中執行,比如 ddl,這些語句可以使用動態 sql 來執行。connected to oracle database 11g enterprise edition release 11.2.0.1....