sql - 如果引用了客户表,如何将数据插入到汽车表中?
问题描述
CREATE TYPE Customer_t AS OBJECT
(
cid char(6),
name varchar(15),
birthdate date,
phone char(10),
address varchar(50)
);
CREATE TABLE Customer OF Customer_t
(
cid PRIMARY KEY
);
CREATE TYPE Car_t AS OBJECT
(
regno char(9),
make varchar(12),
model varchar(10),
mdate date,
owner REF Customer_t,
value number(8,2)
);
/
CREATE TABLE Cars OF Car_t (regno PRIMARY KEY );
INSERT INTO Cars (regno, make, model, mdate, owner, value)
VALUES ('car1', 'german','honda',
TO_DATE('2000/12/16 12:00:00', 'yyyy/mm/dd hh:mi:ss'),
'c1', 8000 );
错误 :
SQL 错误:ORA-00932:不一致的数据类型:预期的 REF 得到了 CHAR 00932。00000 -“不一致的数据类型:预期的 %s 得到了 %s”
解决方案
首先,您需要已经创建了一个客户,以便引用它。INSERT
然后在声明中包含引用。见下文:
CREATE TYPE Customer_t AS OBJECT (
cid char(6),
name varchar(15) ,
birthdate date ,
phone char(10),
address varchar(50)
);
CREATE TABLE Customer OF Customer_t (
cid PRIMARY KEY );
insert into customer values (customer_t('cl1234', 'Peter',
to_date('1990-05-04', 'YYYY-MM-DD'), '1234567890',
'123 Maple St'));
CREATE TYPE Car_t AS OBJECT (
regno char(9),
make varchar(12) ,
model varchar(10) ,
mdate date,
owner REF Customer_t,
value number(8,2)
);
CREATE TABLE Cars OF Car_t (
regno PRIMARY KEY );
insert into cars values (
car_t('reg123456', 'honda', 'accord',
to_date('2000-12-16 12:00:00', 'YYYY-MM-DD HH24:MI:SS'),
(select ref(cu) from customer cu where cid = 'cl1234'),
8000)
);
推荐阅读
- npm - 为包括 anaconda、atom、node.js 等的多语言项目包编写设置脚本的最佳方法?
- ios - 使用多个框架时,如何在不“重复”我的“Podfile”中添加用于测试的 pod?
- c++ - 如何使用 std::generate 初始化具有值的 constexpr 数组
- wso2 - 如何在 WSO2 ESB 中读取请求的正文?
- vue.js - PhpStorm 替换了 vuejs 分隔的脚本标签
- c++ - 如何使对象接受为不同类型生成不同的参数
- json - Hive:将字符串解析为 json
- css - 意外的 CSS 网格定位 (React.js)
- python - 查找出现在多个字符串中的单词
- python - 如何在 QMenu 中定义最大行数?