1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

在数据库中我运行了以下的查询语句: Select PLAN_ID, EL_ID, NIIN, ITEM_NAME, PROJECT_CD,   CASE WHEN LCMC_DOC_NO IS NULL THEN MRODOC ELSE LCMC_DOC_NO END AS "DOCUMENT NUMBER"   FROM EQLIST_VIEW   WHERE PLAN_ID IN (736,1011)   AND LCMC_DOC_NO IN (‘W56HZV0327W501′,’W52H090313X006′,’W52H090314X026’,   ’W52H090314X027′,’W52H090318X049′,’W52H090320X003′,’W56HZV0351M012′,   ’W56HZV0351M032′,’W56HZV0351M035′,’W919AD0334L091′,’W919AD0334L092′,   ’W919AD0352L025′,’W919AD0358L012′,’W919AD0358L017′,’W919AD0353L020′,   ’W56HZV0350M001′)   ORDER BY NIIN, “DOCUMENT NUMBER”   问题是这样的,现在有超过4000个DOC_NO,我想要抽取这些数据放到C盘上的一个文本文件当中。我试了好几种方法,但是系统一直出现第五行错误提示:“Syntax error near ‘C’”

于是我重新写了一边查询:

Select PLAN_ID, EL_ID, NIIN, ITEM_NAME, PROJECT_CD,   CASE WHEN LCMC_DOC_NO IS NULL THEN MRODOC ELSE LCMC_DOC_NO END AS "DOCUMENT NUMBER"   FROM EQLIST_VIEW   WHERE PLAN_ID IN (736,1011)   AND LCMC_DOC_NO IN C:/Users/aj.moon/Desktop/TEMP/A5A_DOCNUM.TXT 能否提供一些好的建议?

  答:你并没有说你在使用哪一个版本的Oracle数据库,那么我就先假设为Oracle 9i。第一个问题是你不能直接使用文本文件,首先你要做的是让这些数据在数据库内可用。你可以使用SQL*Loader来加载数据或者创建一个外部的表。在这里我就简单介绍一下第二种方法。

  外部表可以允许Oracle查询存储在数据库之外的平面文件中的数据。SQL*Loader加载的格式化存储数据你都可以访问。针对外部表,你无法使用INSERT/UPDATE/DELETE操作,但是你可以在查询中使用它们。一旦你创建了外部表,你就可以在视图中使用它,并创建synonyms。通常情况下,使用外部表主要是为了进行ETL操作,它可以防止数据进入真实表。但是如果你打算频繁地查询外部表,就需要考虑将数据加载到真实表当中,因为外部表无法进行索引,性能将会受到比较大的影响。

本文来源:1818IP

本文地址:https://www.1818ip.com/post/4429.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。