前端之家收集整理的这篇文章主要介绍了
oracle 给变量赋值方法总结,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- 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 用法
-
-
-