oracle 给变量赋值方法总结
发布时间:2020-12-12 16:00:30 所属栏目:百科 来源:网络整理
导读:CREATE OR REPLACE Procedure grantValue Is v_tabName Varchar2(50); v_recordNum Number; v_var Varchar2(50) := '直接赋值法'; -- 方法1 直接赋值 v_minvar Varchar2(50); v_sql Varchar2(200); v_tab Varchar2(50); Begin -- 方法二,select into 方法 Se
CREATE OR REPLACE Procedure grantValue Is v_tabName Varchar2(50); v_recordNum Number; v_var Varchar2(50) := '直接赋值法'; -- 方法1 直接赋值 v_minvar Varchar2(50); v_sql Varchar2(200); v_tab Varchar2(50); Begin -- 方法二,select into 方法 Select Min(t.sal) Into v_minvar From emp t; dbms_output.put_line('最少工资为'||v_minvar); -- 方法三,动态sql 发 v_tab := 'emp'; v_sql := 'select count(*) from '|| v_tab; Execute Immediate v_sql Into v_minvar; dbms_output.put_line('公司总人数为'||v_minvar); End grantValue; / -- 静态sql 与 动态 sql:oracle 编译pl/sql 程序块分为两种 -- 其一为前期编译,sql语句在程序编译期间就已经确定,大多数的编译情况属于这种类型 -- 其一为后期编译,sql语句只有在运行阶段才建立,例如当查询条件为用户输入时 -- 动态SQL 程序语法讲解 -- execute immediate dynamic_sql_string using in_params_list return into out_params_list -- 1) 动态sql用在ddl和带参数的dml -- 2) 绑定参数列表为输入参数列表.在运行时刻与动态sql语句中的参数进行绑定 -- 3) 输出参数列表为动态sql语句执行后返回的参数列表 -- Select * From emp; select JOB,SAL from emp Create Or Replace Procedure getSalary(p_empno In Varchar2,p_ename In Varchar2) As v_job Varchar2(50); v_salary Number; v_sql Varchar2(500); Begin v_sql := 'select job from emp where empno ='||p_empno; execute Immediate v_sql into v_job; dbms_output.put_line('工作职位是'||v_job||'工资情况为'||v_salary); End getSalary; / -- 固定数组 CREATE OR REPLACE Procedure usingArray As type type_array is varray(5) of varchar2(20); pid type_array := type_array('1','2','3','4','5'); pname type_array := type_array('chris','cathy','jimmy','rufus','rose'); v_counter Number; Begin for i in 1..pid.count loop If (pid(i) = '3') Then v_counter := i; Exit; End If; End Loop; dbms_output.put_line(pname(v_counter)); End usingArray; / -- oralce 数组 和各种类型的定义 -- oracle using returning into 用法 -- oracle merge into 用法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |