所以,我创建了存储过程(编译时没有错误),但是当我调用它时,我得到的只是" ORA-02216:预期的表空间名称"错误。令人困惑的是,当您手动运行此代码时,它可以完美地运行。 这是代码:
As Variant
答案 0 :(得分:0)
我不确定为什么它不适合你,但看到一个简单的例子,它为我工作。我看到你的select语句的问题但是你告诉它返回值。那么你可以试试如下:
DECLARE
VAR_TABLESPACEA VARCHAR2 (20);
BEGIN
SELECT MIN (TABLESPACE_NAME) INTO VAR_TABLESPACEA FROM ALL_INDEXES;
--- This is not making sense to check tablespace of the table and then its minimum value
-- WHERE TABLE_NAME = 'EMPLOYEE';
EXECUTE IMMEDIATE
'CREATE UNIQUE INDEX SOME_TABLE_PK ON EMPLOYEE
(EMPLOYEE_ID)
LOGGING
TABLESPACE '
|| VAR_TABLESPACEA
|| '
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL';
END;