2017-05-26 24 views
0

我已经创建了一个类型是这样的:错误在编译在Oracle PL嵌套表型/ SQL

create or replace TYPE "DUMMY_TYPE_25MAY2017" 
AS OBJECT 
(
    programdata  VARCHAR2(2000) 
) 

其是使用一个嵌套表型

create or replace TYPE "TYP_DUMMY_TYPE_25MAY2017" AS TABLE OF DUMMY_TYPE_25MAY2017; 

和表

CREATE TABLE DUMMY_TABLE_25MAY17 OF DUMMY_TYPE_25MAY2017; 

然后我改变了类型DUMMY_TYPE_25MAY2017

ALTER TYPE DUMMY_TYPE_25MAY2017 
    MODIFY ATTRIBUTE (programdata VARCHAR2(4000)) CASCADE; 

但现在当我编译型“TYP_DUMMY_TYPE_25MAY2017”我收到错误

"error: ora-22308: operation not allowed on evolved type".

请帮助我如何解决这个问题。

+0

也即时得到一个错误,而执行与此相关的前端功能“值java.sql.SQLException:ORA-00932:不一致的数据类型:预期SCHEMA.TYP_DUMMY_TYPE_25MAY2017了SCHEMA.TYP_DUMMY_TYPE_25MAY2017”。此外,TYP_DUMMY_TYPE_25MAY2017还依赖于包.view和触发器。 – set

+0

提示供将来参考:请让我们更容易找出明确的对象命名方式。虚拟名称几乎相同的三件事是不必要的。 – APC

+0

关于'ORA-00932'的评论是一个单独的问题。 StackOverflow规则是每个线程一个问题。因此,开始一个新的问题。包括**所有相关细节**。必要时链接到此问题。 – APC

回答

1

"But now if I compile the type "TYP_DUMMY_TYPE_25MAY2017 " im getting the error"

这取决于你如何编译嵌套表对象。这个错误发生在create or replace。诀窍是使用alter type ... compile代替:

这是你的设置:

SQL> create or replace TYPE "DUMMY_TYPE_25MAY2017" AS OBJECT 
    2 (programdata  VARCHAR2(2000)); 
    3/

Type created. 

SQL> create or replace TYPE "TYP_DUMMY_TYPE_25MAY2017" AS TABLE OF DUMMY_TYPE_25MAY2017; 
    2/

Type created. 

SQL> CREATE TABLE DUMMY_TABLE_25MAY17 OF DUMMY_TYPE_25MAY2017; 

Table created. 
SQL> 

现在应用的变化。

SQL> ALTER TYPE DUMMY_TYPE_25MAY2017 
    2  MODIFY ATTRIBUTE (programdata VARCHAR2(4000)) CASCADE; 

Type altered. 

SQL> create or replace TYPE "TYP_DUMMY_TYPE_25MAY2017" AS TABLE OF DUMMY_TYPE_25MAY2017; 
    2/
create or replace TYPE "TYP_DUMMY_TYPE_25MAY2017" AS TABLE OF DUMMY_TYPE_25MAY2017; 
* 
ERROR at line 1: 
ORA-22308: operation not allowed on evolved type 


SQL> alter TYPE "TYP_DUMMY_TYPE_25MAY2017" compile 
    2/

Type altered. 

SQL> insert into DUMMY_TABLE_25MAY17 values (DUMMY_TYPE_25MAY2017 ('this is a test')); 

1 row created. 

SQL> 
+0

我也做了同样的事情:改变TYPE“TYP_DUMMY_TYPE_25MAY2017”编译。但后来也收到错误:“java.sql.SQLException:ORA-00932:不一致的数据类型:预期SCHEMA.TYP_DUMMY_TYPE_25MAY2017得到了SCHEMA.TYP_DUMMY_TYPE_25MAY2017” – set