zoukankan      html  css  js  c++  java
  • MYSQL数据迁移tips,ORA00907: missing right parenthesis

     滥觞:zhjjava的 Blog 作者:zhjjava的 Blog  




    ">

    这一段工夫,公司项目谋划是旧数据的迁移,从MYSQL迁移至ORACLE,开了有数次会,接洽了若干次。

    错误气候:

    在从MYSQL导出sql脚本后,在oracle关连东西里实行设立设备表的sql时,如下,有所编削:

      CREATE TABLE TEST_TBL (
      id NUMBER (6) NOT NULL ,
      name varchar2(16) NOT NULL default '''''''',
      tel varchar2(16) NOT NULL default '''''''',
      CONSTRAINT PK_ID
      PRIMARY KEY ( id )) ;

    报错:

    The following error has occurred:

    ORA-00907: missing right parenthesis

    开始感觉莫明玄妙,曾经将关连数据典型典型改了,还报这个错,很忧郁,糜掷了足足有30分钟,搞这事,搞定后,遂想写下此文。

    MYSQL ver :4.0.17,ORACLE:9i,这个成就与版本关系不大,只是从严谨角度解缆,仍是供给一下版本.

    错误原因在于:

    字段界说: name varchar2(16) NOT NULL default ''''''''

    oracle的create table语法:

    CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name (
        { column_name data_type [ DEFAULT default_expr ] [ column_constraint [, ... ] ]
        | table_constraint }  [, ... ]
    ).....

    意味着,字段给定默许值,default value 应该在[ column_constraint [, ... ] 之前,name字段界说应该是:name varchar2(16) default '''''''' NOT NULL

    再看MYSQL create table的语法:
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]
    [table_options] [select_statement]

    create_definition:
      col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]

    MYSQL中的语法界说是,default_value 写在"NOT NULL/NULL"之后,虽然实践上在MYSQL里设立设备表时,default_value的值也可以在"NOT NULL/NULL"之前,之前之后都是有关的,都可以精确设立设备表,但在ORACLE中是严明依照语句界说来查验的,以是迥殊异常的语句(改关连字段典型典型后)在oracle中报错!

    其它另有一点,无论是用mysqldump命令,仍是用PHP供给的一个东西(选择导出为ORACLE格式),他们导出的表的界说SQL中,default value的职位都是在"NOT NULL/NULL"之后,而这是ORACLE关连语法不支持的,以是出现如上错误。

    写出来,以防各位在这个小成就上糜掷工夫.

    另有个感受就是看成就我们不克不及只看表象,内外未必如一,任务云云,保管亦云云!




    版权声明: 原创作品,允许转载,转载时请务必以超链接体式式子标明文章 原始情由 、作者信息和本声明。否则将究查规则责任。

  • 相关阅读:
    HTML DOM 06 节点关系
    HTML DOM 05 事件(三)
    HTML DOM 05 事件(二)
    HTML DOM 05 事件(一)
    html DOM 04 样式
    html DOM 03 节点的属性
    html DOM 02 获取节点
    html DOM 01 节点概念
    JavaScript 29 计时器
    JavaScript 28 弹出框
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975726.html
Copyright © 2011-2022 走看看