Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Oracle查询的内容生成mysql导入语句时出现问题_Mysql_Oracle_Insert_Export - Fatal编程技术网

从Oracle查询的内容生成mysql导入语句时出现问题

从Oracle查询的内容生成mysql导入语句时出现问题,mysql,oracle,insert,export,Mysql,Oracle,Insert,Export,下面的查询几乎可以正常工作了,但是在执行脚本时,qcare\u end和warranty\u end两个字段都会生成一个无效的标识符错误 此外,我希望使用这个脚本和一些类似的脚本来生成一系列操作,这些操作将从我们的oracle合同和零件管理数据库中获取一部分数据,并将其喷射到mysql数据库中,我们在记录事件时使用该数据库 Select 'Insert Into mysqldbtable (system_id, customer_code,, serial_no, system_

下面的查询几乎可以正常工作了,但是在执行脚本时,qcare\u end和warranty\u end两个字段都会生成一个无效的标识符错误 此外,我希望使用这个脚本和一些类似的脚本来生成一系列操作,这些操作将从我们的oracle合同和零件管理数据库中获取一部分数据,并将其喷射到mysql数据库中,我们在记录事件时使用该数据库

    Select
    'Insert Into mysqldbtable (system_id, customer_code,, serial_no, system_type, description, qcare_end, warranty_end) Values (''' 
    || system_id || ''',''' || customer_code || ''',''' || serial_no || ''',''' || system_type || ''',''' || description ||  ''')'
  FROM (SELECT SYSTEMS.SYSTEM_ID
               --            ,SYSTEMS.SITE_NAME
              , CUSTOMER_ADDRESSES.CUSTOMER_CODE
               --            , CUSTOMER_ADDRESSES.NAME
              , SYSTEMS.SERIAL_NO
              , SYSTEMS.SYSTEM_TYPE
              , PM.DESCRIPTION
               --            ,MAX(EI.END_DATE)
              , TO_DATE(NULL) AS "qcare_end"
              , MAX(systems.warranty_end) AS "warranty_end"
        --            ,systems.warranty_code
          FROM LEO.CUSTOMER_ADDRESSES CUSTOMER_ADDRESSES
               -- , LEO.CUSTOMERS CUSTOMERS
              , LEO.SYSTEMS SYSTEMS
               -- , LEO.EXHIBIT_ITEMS EI
              , LEO.PART_MASTER PM
         WHERE SYSTEMS.ADDRESS_CODE = CUSTOMER_ADDRESSES.ADDRESS_CODE
              -- AND CUSTOMER_ADDRESSES.CUSTOMER_CODE = CUSTOMERS.CUSTOMER_CODE 
              -- AND SYSTEMS.SYSTEM_ID = EI.SYSTEM_ID
           AND SYSTEMS.SYSTEM_TYPE = PM.PART_NO
         GROUP BY SYSTEMS.SYSTEM_ID,
                  SYSTEMS.SERIAL_NO,
                  CUSTOMER_ADDRESSES.CUSTOMER_CODE,
                  CUSTOMER_ADDRESSES.NAME,
                  SYSTEMS.SITE_NAME,
                  SYSTEMS.SYSTEM_TYPE,
                  PM.DESCRIPTION
        HAVING(SYSTEMS.SYSTEM_TYPE NOT IN('COMPLETE', 'ESSENTIAL', 'LOAN DEMO', 'LOAN CUSTOMER', 'MISC', 
        'ORPH-CHILD-SYS', 'ORPH_CHILD_SYS', 'PROD-BOM', 'QCARE', 'QSUPPORT', 'SPARES', 'STANDARD', 'WARRANTY', 'SOFT CARE')) 
        AND (SYSTEMS.SITE_NAME NOT LIKE '%DO NOT USE%' AND CUSTOMER_ADDRESSES.NAME NOT LIKE 'QUANTEL%' AND CUSTOMER_ADDRESSES.NAME NOT LIKE '%LOCATION NOT KNOWN%')
       UNION SELECT SYSTEMS.SYSTEM_ID
               --            ,SYSTEMS.SITE_NAME
              , CUSTOMER_ADDRESSES.CUSTOMER_CODE
               --            , CUSTOMER_ADDRESSES.NAME
              , SYSTEMS.SERIAL_NO
              , SYSTEMS.SYSTEM_TYPE
              , PM.DESCRIPTION
               --            ,MAX(EI.END_DATE)
              , MAX(EI.END_DATE) AS "QCare_End"
              , TO_DATE(NULL) "Warranty_End"
        --            ,MAX(systems.warranty_end)
        --            ,systems.warranty_code
          FROM LEO.CUSTOMER_ADDRESSES CUSTOMER_ADDRESSES
               -- , LEO.CUSTOMERS CUSTOMERS
              , LEO.SYSTEMS       SYSTEMS
              , LEO.EXHIBIT_ITEMS EI
              , LEO.PART_MASTER   PM
         WHERE SYSTEMS.ADDRESS_CODE = CUSTOMER_ADDRESSES.ADDRESS_CODE
              -- AND CUSTOMER_ADDRESSES.CUSTOMER_CODE = CUSTOMERS.CUSTOMER_CODE 
           AND SYSTEMS.SYSTEM_ID = EI.SYSTEM_ID
           AND SYSTEMS.SYSTEM_TYPE = PM.PART_NO
         GROUP BY SYSTEMS.SYSTEM_ID,
                  SYSTEMS.SERIAL_NO,
                  CUSTOMER_ADDRESSES.CUSTOMER_CODE,
                  CUSTOMER_ADDRESSES.NAME,
                  SYSTEMS.SITE_NAME,
                  SYSTEMS.SYSTEM_TYPE,
                  PM.DESCRIPTION
        HAVING(SYSTEMS.SYSTEM_TYPE NOT IN('COMPLETE',  'ESSENTIAL', 'LOAN DEMO', 'LOAN CUSTOMER'
        , 'MISC', 'ORPH-CHILD-SYS', 'ORPH_CHILD_SYS', 'PROD-BOM', 'QCARE', 'QSUPPORT', 'SPARES', 'STANDARD', 'WARRANTY', 'SOFT CARE')) 
        AND (SYSTEMS.SITE_NAME NOT LIKE '%DO NOT USE%' AND CUSTOMER_ADDRESSES.NAME NOT LIKE 'QUANTEL%' AND CUSTOMER_ADDRESSES.NAME NOT LIKE '%LOCATION NOT KNOWN%'))
where ROWNUM <= 10 ORDER BY SERIAL_NO;
这只返回10个结果,看起来很正常-但如果我重新添加qcare和保修结束日期,它将失败,并出现以下错误:

65 ROWNUM在哪里

我不确定为什么表别名不起作用——在常规查询中似乎可以,但在我尝试生成导入语句时却不行,然后可以定期将导入语句导入mysql

有没有想过我错过了什么? 干杯 斯科特

斯科特

别名不起作用,因为您已将它们放在双引号中,在混合大小写中提示:不要这样做。这意味着您必须以这种方式引用它们:

SELECT "qcare" FROM (your_query)
您可能需要这样做,这使得您的别名都是大写的:

, TO_DATE(NULL) AS qcare_end
, MAX(systems.warranty_end) AS warranty_end


从技术上讲,您不需要在联合体的下半部分使用别名,而是联合体的上半部分驱动联机视图的列名。

非常感谢DCookie-今天下午将尝试使用它,-我不知道联合体的下半部分不需要别名-非常感谢!
, MAX(EI.END_DATE) AS QCare_End
, TO_DATE(NULL) Warranty_End