搜索
查看: 1617|: 0

【Oracle】oracle-存储过程练习

[复制链接]

153

主题

3

回帖

479

积分

中级会员

积分
479
发表于 2014-11-15 09:46:25 | 显示全部楼层 |阅读模式
  1. --====================================存储过程===============================================
  2. /*
  3. *scm_iss.test_imit_pro1
  4. *无参数存储过程
  5. */
  6. CREATE OR REPLACE PROCEDURE TEST_IMIT_PRO1 AS
  7.   P_IMTI_NAME VARCHAR2(200);
  8.   x_message VARCHAR2(200);
  9. BEGIN
  10.   SELECT I.IMTI_NAME INTO P_IMTI_NAME FROM SCM_ISS.T_IMTI_TEST I WHERE I.IMTI_NO = 1001;
  11.   DBMS_OUTPUT.PUT_LINE('result:' || P_IMTI_NAME);
  12. /*EXCEPTION
  13.   WHEN OTHERS
  14.     x_message := SUBSTR(SQLERRM,1,240);*/
  15. END TEST_IMIT_PRO1;

  16. /*
  17. *scm_iss.test_imti_pro2
  18. *带输入参数的存储过程
  19. */

  20. CREATE OR REPLACE PROCEDURE TEST_IMTI_PRO2(P_NO IN NUMBER) AS
  21.   P_IMTI_NAME VARCHAR2(200);
  22. BEGIN
  23.   SELECT I.IMTI_NAME
  24.     INTO P_IMTI_NAME
  25.     FROM SCM_ISS.T_IMTI_TEST I
  26.    WHERE I.IMTI_NO = P_NO;
  27.   DBMS_OUTPUT.PUT_LINE('NAME:' || P_IMTI_NAME);
  28. END TEST_IMTI_PRO2;

  29. --测试调用
  30. CALL scm_iss.test_imti_pro2(1003);

  31. /*
  32. *scm_iss.test_imti_pro3
  33. *带输入输出参数的存储过程
  34. *不能直接掉用,需要在Function中调用
  35. */

  36. CREATE OR REPLACE PROCEDURE TEST_IMTI_PRO3(P_NO   IN NUMBER,
  37.                                            P_NAME OUT VARCHAR2) AS
  38.   T_NAME VARCHAR2(200);
  39. BEGIN
  40.   T_NAME := 'HELLO WORD.';
  41.   DBMS_OUTPUT.PUT_LINE('T_NAME:' || T_NAME);
  42.   SELECT I.IMTI_NAME
  43.     INTO P_NAME
  44.     FROM SCM_ISS.T_IMTI_TEST I
  45.    WHERE I.IMTI_NO = P_NO;
  46.   DBMS_OUTPUT.PUT_LINE('TEST_IMTI_PRO3 RETURN:' || P_NAME);
  47. END TEST_IMTI_PRO3;


  48. /**
  49. *TEST_SALT_PRO1
  50. *往数据库表中插入数据存储过程
  51. **/
  52. CREATE OR REPLACE PROCEDURE TEST_SALT_PRO1(P_SALT_NUM IN NUMBER,P_SALT_NAME IN VARCHAR2,P_SALT_DESC IN VARCHAR2) AS

  53. BEGIN
  54.   INSERT INTO T_SALT_TEST(SALT_NO,SALT_NAME,SALT_DESC) VALUES(P_SALT_NUM,P_SALT_NAME,P_SALT_DESC);
  55.   COMMIT;
  56. EXCEPTION
  57.   WHEN OTHERS THEN
  58.     DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,240));
  59. END TEST_SALT_PRO1;


  60. /*
  61. *scm_iss.test_imti_fun1
  62. *无参数Function
  63. */

  64. CREATE OR REPLACE FUNCTION TEST_IMTI_FUN1 RETURN VARCHAR2 IS
  65. P_ITME_NAME VARCHAR2(200);
  66. X_MESSAGE VARCHAR2(200);
  67. BEGIN
  68.   SELECT I.IMTI_NAME INTO P_ITME_NAME FROM SCM_ISS.T_IMTI_TEST I WHERE I.IMTI_NO = 1002;
  69.   --调用无参数存储过程
  70.   SCM_ISS.TEST_IMIT_PRO1;
  71.   --调用输入参数存储过程
  72.   SCM_ISS.TEST_IMTI_PRO2(1003);
  73.   RETURN P_ITME_NAME;
  74. EXCEPTION
  75.   WHEN OTHERS THEN
  76.    X_MESSAGE := SUBSTR(SQLERRM,1,240);
  77.    RETURN X_MESSAGE;
  78. END TEST_IMTI_FUN1;
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-11-15 21:57 , Processed in 0.067321 second(s), 24 queries .

快速回复 返回顶部 返回列表