【问题标题】:Using single, double and triple quotes in SQL for text qualifiers在 SQL 中使用单引号、双引号和三引号作为文本限定符
【发布时间】:2016-03-21 09:44:24
【问题描述】:

我正在处理来自客户端的一些 CSV 数据,其中一个标题是“书名”。 'booktitle' 的值是用双引号限定的文本,并且某些标题中有引号,例如;

"How to draw the "Marvel" way"

我要求客户用双引号将引号中的引号转义,他们把这个发回给我

'"How to draw the """Marvel""" way "'

所以单引号,双引号,然后是三引号。我的问题是这行得通吗?在转义文本限定符之前,我还没有看到它这样做过。

【问题讨论】:

  • 这里有什么问题?是否要转义单引号?
  • 什么会起作用?您是否试图阻止值中的双引号混淆您对 CSV 的解析?他们真的给你带来了问题吗?它可能有助于展示你如何解析它,以及为什么这些是一个问题。目前尚不清楚您是否只是对单引号、转义单引号和双引号之间的区别感到困惑。
  • 不要假设任何问题。如果出现任何问题,请处理 csv 文件,然后共享它。

标签: sql oracle csv


【解决方案1】:

您使用哪种方式保存信息?

如果直接从 SQL 保存,双引号不是问题,因为 SQL 使用单引号。 如果您使用的是程序,请使用 SqlParameters。它会包裹你的一切

【讨论】:

    【解决方案2】:

    Oracle 设置

    CREATE TABLE BOOKS(
      ID    INT,
      TITLE VARCHAR2(4000)
    );
    

    CSV

    ID,TITLE
    1,"How to draw the ""Marvel"" Way"
    2,"Test ""Someone's Data"""
    

    (开始和结束一个双引号,字符串中间一个双引号转义两个双引号,单引号不需要转义。)

    通过 Oracle SQL Developer 导入

    1. 在连接窗格中,右键单击表名并选择“导入数据...”
    2. 浏览并选择 CSV 文件,然后默认值就足够了,因此请单击“下一步 >”。
    3. 将导入方法设置为“插入”并取消选择“将创建脚本发送到 SQL 工作表”,然后单击“下一步>”三次。
    4. 点击“完成”,数据将被导入。

    【讨论】:

      猜你喜欢
      • 2012-10-14
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 2019-07-20
      相关资源
      最近更新 更多