【问题标题】:Oracle 11g creating tableOracle 11g 创建表
【发布时间】:2023-03-15 04:13:01
【问题描述】:

您好,我正在使用 oracle 11g 创建具有对象关系特性的表,但由于某种原因它没有创建表

我有什么

create type Name as object (
  firstname varchar2(20),
  surname varchar2(20))
  final
create type Address as object (
  street varchar2(20),
  city varchar2(20),
  postal_code varchar2(8))
  not final

对于桌子

create table people (
  (pname Name,
  paddress Address,
  dateOfBirth date);

但它没有创建表格,我知道它可能是简单而直接的,但我只是无法缝制它来创建表格,如果有人能指出我正确的方向来让它创建表格做个好人

当我尝试创建表时,我得到以下错误

 ORA-00904: "%s: invalid identifier"
 *Cause:
 *Action:
 Vendor code 904Error at line:2 colimn:2

【问题讨论】:

  • 效果不错,看看sqlfiddle.com/#!4/4f661
  • 我删除了 MySQL 标签,因为这个问题是关于 Oracle 的。
  • create table 语句中,pname 前面多了一个括号。
  • 正如 Gordon 指出的那样,这是一个错字

标签: sql oracle oracle11g


【解决方案1】:

你可以试试这个:

CREATE TYPE Name as object (firstname varchar2(20), surname varchar2(20)) FINAL;

CREATE TYPE Address as object (street varchar2(20), city varchar2(20), postal_code varchar2(8)) NOT FINAL;

CREATE TABLE people (pname Name, paddress Address, dateOfBirth date);

DEMO

【讨论】:

  • 这是可以工作的接缝,但是我在侧面板上看不到任何表格,就像创建普通表格时通常那样,谢谢
  • @Michael 它创建表 :) 要查看架构,请在 Browser 按钮上创建 :)
【解决方案2】:

试试这个

create type Name as object (
firstname varchar2(20),
surname varchar2(20))
final );


create type Address as object (
street varchar2(20),
city varchar2(20),
postal_code varchar2(8))
not final);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 2021-12-18
    • 2012-02-12
    • 1970-01-01
    • 2016-02-27
    • 2014-09-22
    相关资源
    最近更新 更多