oracle在创建表时缺少关键字

时间:2017-10-23 19:51:40

标签: sql oracle11g create-table

我正在尝试在oracle中使用sql创建一个表。但是使用这个语句它会让我错过关键字错误。但它在w3school sql tryit编辑器中运行正常。任何人都可以帮我理解在oracle中导致问题的原因??

# the value of RangeSlider causes Label to update
@app.callback(
    output=Output('time-range-label', 'children'),
    inputs=[Input('year_slider', 'value')]
    )
def _update_time_range_label(year_range):
    return 'From {} to {}'.format(year_range[0], year_range[1])

所有帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您的问题是Oracle具有Double Precision数据类型和Numeric数据类型。你把两者结合起来。这里的“缺失关键字”是双精度后的“精度”一词。你要么想要这个:

create table  products (
product_key number(4) not null primary key, 
product_name varchar(50) not null unique, 
price_reg double precision not null, 
price_spec double precision not null, 
sell_reg double precision not null, 
sell_spec double precision not null)

或者这个:

create table  products (
product_key number(4) not null primary key, 
product_name varchar(50) not null unique, 
price_reg numeric(10,2) not null, 
price_spec numeric(10,2) not null, 
sell_reg numeric(10,2) not null, 
sell_spec numeric(10,2) not null)

SQL Fiddle demo

另请注意,1000不是数字类型的有效精度值,最大值为38(我上面使用了10)。

答案 1 :(得分:2)

尽量不要使用w3school使用oracle docs
已经回答了

这里有一些有用的信息

  1. 表格的奇异名称
  2. 列的奇异名称
  3. 表格的模式名称前缀(例如:SchemeName.TableName)
  4. 帕斯卡尔外壳(a.k.a。上骆驼箱)
  5. create table Product ( product_key number(4) not null primary key, product_name varchar(50) not null unique, price_reg double precision not null, price_spec double precision not null, sell_reg double precision not null, sell_spec double precision not null)