oracle 给变量赋值方法总结

前端之家收集整理的这篇文章主要介绍了oracle 给变量赋值方法总结前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. CREATE OR REPLACE Procedure grantValue Is
  2. v_tabName Varchar2(50);
  3. v_recordNum Number;
  4. v_var Varchar2(50) := '直接赋值法'; -- 方法1 直接赋值
  5. v_minvar Varchar2(50);
  6. v_sql Varchar2(200);
  7. v_tab Varchar2(50);
  8. Begin
  9. -- 方法二,select into 方法
  10. Select Min(t.sal) Into v_minvar From emp t;
  11. dbms_output.put_line('最少工资为'||v_minvar);
  12.  
  13. -- 方法三,动态sql
  14. v_tab := 'emp';
  15. v_sql := 'select count(*) from '|| v_tab;
  16. Execute Immediate v_sql Into v_minvar;
  17. dbms_output.put_line('公司总人数为'||v_minvar);
  18. End grantValue;
  19. /
  20.  
  21. -- 静态sql 动态 sqloracle 编译pl/sql 程序块分为两种
  22. -- 其一为前期编译,sql语句在程序编译期间就已经确定,大多数的编译情况属于这种类型
  23. -- 其一为后期编译,sql语句只有在运行阶段才建立,例如当查询条件为用户输入时
  24.  
  25. -- 动态sql 程序语法讲解
  26. -- execute immediate dynamic_sql_string using in_params_list return into out_params_list
  27. -- 1) 动态sql用在ddl和带参数的dml
  28. -- 2) 绑定参数列表为输入参数列表.在运行时刻与动态sql语句中的参数进行绑定
  29. -- 3) 输出参数列表为动态sql语句执行后返回的参数列表
  30. -- Select * From emp; select JOB,SAL from emp
  31. Create Or Replace Procedure getSalary(p_empno In Varchar2,p_ename In Varchar2) As
  32. v_job Varchar2(50);
  33. v_salary Number;
  34. v_sql Varchar2(500);
  35. Begin
  36. v_sql := 'select job from emp where empno ='||p_empno;
  37. execute Immediate v_sql into v_job;
  38. dbms_output.put_line('工作职位是'||v_job||'工资情况为'||v_salary);
  39. End getSalary;
  40. /
  41. -- 固定数组
  42. CREATE OR REPLACE Procedure usingArray As
  43. type type_array is varray(5) of varchar2(20);
  44. pid type_array := type_array('1','2','3','4','5');
  45. pname type_array := type_array('chris','cathy','jimmy','rufus','rose');
  46. v_counter Number;
  47.  
  48. Begin
  49. for i in 1..pid.count loop
  50. If (pid(i) = '3') Then
  51. v_counter := i;
  52. Exit;
  53. End If;
  54. End Loop;
  55. dbms_output.put_line(pname(v_counter));
  56.  
  57. End usingArray;
  58. /
  59.  
  60. -- oralce 数组 和各种类型的定义
  61. -- oracle using returning into 用法
  62. -- oracle merge into 用法

猜你在找的Oracle相关文章