如何写入和读取 CSV 文件 - Oracle SQL Plus
Posted
技术标签:
【中文标题】如何写入和读取 CSV 文件 - Oracle SQL Plus【英文标题】:How to write and read to/from a CSV file - Oracle SQL Plus 【发布时间】:2018-05-08 11:19:45 【问题描述】:作为数据库类的作业,我必须在 CSV 文件中写入和读取表。我不允许使用任何特定的工具,我必须编写自己的程序来实现这些目标。比如我要写的表是这样的:
学生(id 整数,姓名 varchar2(20),birth_date 日期)。
在 CSV 文件中,我会这样写:
1,Brandon,--约会--
2,爱丽丝,--另一个约会--
3,约翰,--又是一个约会--
记住,上面写着--a date--等等,这是一个真实的日期,我只是没有写在实际的帖子中。
现在,我们的教授教我们的是使用 UTL_FILE 包在文件中写入实际内容,所以我认为只在文件中写入会很容易,使用光标遍历整个学生表并只是在我的文件中写入类似 id || 的内容',' ||姓名 || ',' ||生日 || '\n';
现在,前提是在将表保存到 CSV 文件后,我们必须删除 Student 表,然后使用 CSV 文件中的信息重新填充它。
对于写入和读取过程以及如何使它们起作用的任何形式的帮助,我将不胜感激。同样,写作似乎更容易,但阅读似乎更复杂。
提前感谢您的任何建议!
【问题讨论】:
欢迎来到 *** Mihnea。您可能会发现在发布问题之前阅读常见问题解答会有所帮助 - ***.com/help 同时我投票结束这个问题,因为“请求家庭作业帮助的问题必须包括您迄今为止为解决问题所做的工作的摘要,以及您遇到的困难的描述。” 好吧,我不是教授,但我认为你应该研究一下 SQL Plus - “spool” 命令。这将创建一个带有您提供的任何扩展名的假脱机文件。使用 Oracle SQL Developer 可以轻松读取 csv 或文本、分隔文件或许多其他文件。如果您必须使用 PL/.SQL 或无法使用您编写的工具,UTL_File 也很好。utl_file
应该可以正常写作。让我们知道你被困在哪里。您也可以使用utl_file
读回文件,或者定义external table。作为提示,我建议对任何 DATE
列使用显式格式,例如 'YYYY-MM-DD'
。
我已经完成了我的作业并得到了 10 分。能够找到一种使用 regexp_substr 函数从 CSV 文件中读取的非常酷的方法。不过还是谢谢你。
【参考方案1】:
您可以从 oracle 下载名为 sqlcl 的较新的 sqlplus 实用程序。 (sql命令行)。 然后使用语法加载 语法 - 加载 [table_name] [带有路径的 csv 文件] link 中的更多选项
【讨论】:
以上是关于如何写入和读取 CSV 文件 - Oracle SQL Plus的主要内容,如果未能解决你的问题,请参考以下文章