Oracle

表不存在

  • December 5, 2013
CREATE OR REPLACE PROCEDURE ProcedureX()
   TYPE AVERAGE_COUNT_TBL IS TABLE OF INTEGER;
   AVERAGE_COUNT AVERAGE_COUNT_TBL;
BEGIN
   INSERT INTO AVERAGE_COUNT 
   VALUES(10);
END ProcedureX;

它拋出錯誤:PL/SQL:ORA-00942:表或視圖不存在

問題是什麼?

如果您確實打算只使用基於記憶體 PL/SQL 類型的表,那麼您需要執行以下操作:

CREATE OR REPLACE PROCEDURE ProcedureX
AS
   TYPE AVERAGE_COUNT_TBL IS TABLE OF NUMBER;
   AVERAGE_COUNT AVERAGE_COUNT_TBL;
   CURSOR C IS SELECT 10 FROM DUAL;
BEGIN
   OPEN C;
   FETCH C BULK COLLECT INTO AVERAGE_COUNT;
   CLOSE C;
END ProcedureX;
/

游標僅用於展示。

我要補充一點,你的問題很糟糕,因為你甚至沒有花時間確保它AVERAGE_COUNT_TBL在下一行與自身匹配 - 你使用AVG_TRANS_HOUR_TBL了。如果您希望隨機的網際網路人花時間編寫高質量的答案,那麼確保您的問題具有足夠的質量是否會受到傷害?

引用自:https://dba.stackexchange.com/questions/54532