存儲過程 ORA-00942 表或視圖不存在


 


# 存儲過程 ORA-00942 表或視圖不存在
## 原因分析:
1 大小寫
2 權限賦予

## 權限賦予思路:
1 grant ***
2 加入“Authid Current_User” 如
```sql
create or replace procedure P_create_emp2 authid current_user as …………
```

CREATE OR REPLACE PROCEDURE P_STUDENT_TRANSFER Authid Current_User 
AS
  CURSOR abd
  IS
    SELECT ' INSERT INTO BI.TEST_STUDENT  (WBMMC,XXDMC,SJZS,YPCGS,YPBCGS) VALUES ('''  -- 加入“Authid Current_User ” ,解決 表或視圖不存在
      || T1.WBM_MC
      ||''','''
      || T2.XXD_MC
      ||''','
      || '(SELECT COUNT(*) FROM '
      ||T2.XXD_YYB_MC
      ||' ),'
      || '(SELECT COUNT(1) FROM '
      || T2.XXD_YYB_MC
      ||' T WHERE T.DJXH IS NOT NULL ),'
      || '(SELECT COUNT(1) FROM '
      || T2.XXD_YYB_MC
      ||' T WHERE T.DJXH IS  NULL ));' AS SQLS
    FROM BI.DM_DSF_WBMXX T1
    LEFT JOIN BI.DSF_XXD_JBXX T2
    ON T1.WBM_DM        =T2.SSWBM_DM
  t_sqls abd%rowtype;
BEGIN

  EXECUTE IMMEDIATE 'TRUNCATE TABLE BI.TEST_STUDENT';    // 清空表的數據
  COMMIT;
  FOR t_sqls IN abd
  LOOP
    BEGIN
      EXECUTE IMMEDIATE t_sqls.SQLS; --  t_sqls.SQLS內不含“;”分號,含分號會報錯;此處執行sql
    END;
  END LOOP;
END P_STUDENT_TRANSFER;-- 收尾name一致:P_STUDENT_TRANSFER

 

 

參考:

1. Oracle:Authid Current_User使用  https://www.cnblogs.com/Richardzhu/p/3460985.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM