SQL:使用多字符分隔符将文本文件复制到数据库

SQL:使用多字符分隔符将文本文件复制到数据库,sql,postgresql,Sql,Postgresql,我有一个无法编辑的文件,它使用:作为分隔符。我使用以下sql公式将文件内容复制到postgresql数据库: cur.execute(“用分隔符“:”从“文件路径”复制表名(列1、列2、列3、列4)” 当我执行此代码时,程序会在最后一个预期列之后抛出DataError:extra data。这似乎是因为sql在第二次解析冒号字符时插入了一个空白列。SQL不允许使用多个字符分隔符,因此“:”不是一个选项 我想知道对于这种情况是否有一个最佳实践。也许可以忽略第二个冒号?为什么不编辑文本文件并更改分隔

我有一个无法编辑的文件,它使用
作为分隔符。我使用以下sql公式将文件内容复制到postgresql数据库:

cur.execute(“用分隔符“:”从“文件路径”复制表名(列1、列2、列3、列4)”

当我执行此代码时,程序会在最后一个预期列之后抛出
DataError:extra data
。这似乎是因为sql在第二次解析冒号字符时插入了一个空白列。SQL不允许使用多个字符分隔符,因此“:”不是一个选项


我想知道对于这种情况是否有一个最佳实践。也许可以忽略第二个冒号?

为什么不编辑文本文件并更改分隔符?@Sloarthasher“我有一个无法编辑的文件”创建一个新文件(例如,使用
sed的/::/:/g'newfile
)?@wildplasser ya这可能是最好的方法。出于某种原因,我认为有一种sql方法可以实现这一点。我花了一些精力创建了一个表,其中每行只有一列数据,然后找到了一种使用sql子字符串进行分隔的方法。可能有一个解决方案,但我的sql技能很弱。你可以创建一个包含额外列的保留表。这样,将为
之间的数据插入空值。换句话说,创建一个表,该表将接受数据,就好像
是预期的分隔符一样,稍后删除空列,或者移动到现有表。