logo 西林@生存 - 骑猪闯天下!
动态SQL返回值及EXCEPTION_INIT 示例
2006-12-6 17:03:00 By:xling
刚写了一个,是个好例子,贴出来,以免日后忘了。

CREATE OR REPLACE PACKAGE BODY jd_pkg_user
AS
   FUNCTION f_get_right (
      i_user_id      IN   VARCHAR2,
      i_comp_no      IN   VARCHAR2,
      i_fun_id       IN   VARCHAR2,
      i_right_item   IN   VARCHAR2
   )
      RETURN VARCHAR2
   AS
      v_count               NUMBER    := 0;
      invalid_column_name   EXCEPTION;
      PRAGMA EXCEPTION_INIT (invalid_column_name, -904);
   BEGIN
      SELECT COUNT (1)
        INTO v_count
        FROM asp_user_function_detail
       WHERE comp_no = i_comp_no
         AND user_name = i_user_id
         AND fun_id = i_fun_id
         AND price_flag = 'Y';

      EXECUTE IMMEDIATE    'SELECT COUNT(1) FROM ASP_USER_FUNCTION_DETAIL WHERE COMP_NO = :COMP_NO AND USER_NAME = :USER_NAME AND FUN_ID = :FUN_ID AND '
                        || i_right_item
                        || '= :RIGHT_VALUE'
                   INTO v_count
                  USING IN i_comp_no, i_user_id, i_fun_id, 'Y';

      IF v_count > 0
      THEN
         RETURN 'Y';
      ELSE
         RETURN 'N';
      END IF;
   EXCEPTION
      WHEN NO_DATA_FOUND
      THEN
         RETURN 'N';
      WHEN invalid_column_name
      THEN
         raise_application_error (-20001,
                                  'Field :' || i_right_item || ' not exists'
                                 );
   END;
END;

转我的贴,写你的名,是一种可耻的行为!请不要让我BS你!
阅读全文 | 回复(0) | 引用通告 | 编辑

发表评论:

    密码:
    主页:
    标题:
    页面数据正在载入...
<<  < 2007 - 12 >  >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Placard
1,長江後浪推前浪,前浪死在沙灘上!
2,有了钱的男人,才是真正的男人...
3,不要以为把你的小JJ埋进土里,你就rape了整个地球;不要以为把你的小JJ朝向天空,你就rape了整个宇宙!
Logon System
Search
Info about this blog
Others
myDream
bxna 京ICP备05002321号