我已经尝试寻找这种类型的错误。我确实在其他人身上有类似的错误,但有不同的问题。请帮我解决这个示例oracle查询的好方法是什么?
create type Exams (
year char(4),
city varchar(20)
)
create table exams of type Exams
create OR REPLACE type Skills AS OBJECT(
type varchar(20),
ExamSet Exams multiset
);
/
create table skills of Skills;
这是脚本输出中的错误:
LINE/COL ERROR
--------- -------------------------------------------------------------
1/12 PLS-00103: Encountered the symbol "(" when expecting one of the following: ; is authid as compress force compiled wrapped under
Errors: check compiler log
答案 0 :(得分:1)
尝试:
CREATE OR REPLACE TYPE ExamsType AS OBJECT (
year char(4),
city varchar(20)
);
/
create table Exams OF ExamsType;
修复:
创建类型AS OBJECT
;这将为您提供一个实际上可以保存属性的抽象数据类型(ADT)-请参见the oracle docs
在create type
语句的末尾需要用分号和斜杠
表的名称不能与类型相同
CREATE TABLE
的语法错误
要插入此表中,通常将使用以下语句:
insert into Exams values( ExamsType('2018', 'my adress') );
答案 1 :(得分:0)
这将起作用:
CREATE TABLE new_table
AS (SELECT *
FROM old_table WHERE 1=2);
对于您的情况,它是这样的:
CREATE TABLE exams
AS (SELECT *
FROM Exams WHERE 1=2);
对于1=2
,它不选择任何行,但是对于as
,它会复制表定义!
谢谢!!!!!!!!!