尝试由另一个所有者在DBA_EXTENTS中找到一个对象。当我在下面输入时,它的工作原理是:
SELECT * FROM SYS.DBA_EXTENTS TP WHERE PARTITION_NAME IS NOT NULL这项工作。
但我正在尝试将查询保存在一个包中
SELECT * FROM DBA_EXTENTS WHERE SEGMENT_NAME = SEGMENT_NAME_P AND OWNER = TABLE_OWNER_P甲骨文返回错误(662,14):PL/SQL: ORA-00942:表或透视图不存在
我也尝试过使用SYS.DBA_EXTENTS。
一揽子申报:
create or replace PACKAGE NEW_TECH_CORE AS
MOD_NAME CONSTANT VARCHAR2(10) := 'NEW_TECH_CORE';
MOD_VER CONSTANT VARCHAR2(10) := '1.0.0';
TYPE STORAGE_S_T IS RECORD (
TABLE_NAME VARCHAR2(128)
,PARTITION_NAME VARCHAR2(128)
,SUBPARTITION_NAME VARCHAR2(128)
);
TYPE STORAGE_S_T IS TABLE OF STORAGE_S_T;
FUNCTION STORAGE_S (
DATASTORE_ID VARCHAR2,
SEGMENT_TYPE VARCHAR2,
SHOW_EMPTY_SEGMENTS NUMBER := 0,
VIEW_LEVEL VARCHAR2 := 'PARTITION'
) RETURN STORAGE_S_TAB PIPELINED;
END;发布于 2022-08-26 13:40:17
在oracle中的可执行块中不能有查询。触发器,程序,包,功能,匿名,无论如何。您不能只在BEGIN和END之间进行查询。您必须有游标或INTO
begin
SELECT * FROM ..... -- <-- NOT ALLOWED
end;这会起作用的
declare
vA number(10);
begin
SELECT a INTO vA FROM ..... -- <-- ALLOWED
end;https://stackoverflow.com/questions/73501644
复制相似问题