SQL获取所有列的分隔结果
我正在编写一个简单的SQL语句来生成要加载到数据库中的BCP文件 这些BCP文件的格式如下:SQL获取所有列的分隔结果,sql,sybase,Sql,Sybase,我正在编写一个简单的SQL语句来生成要加载到数据库中的BCP文件 这些BCP文件的格式如下: 1|name|otherfield|otherfield1 要生成这样的文件,我目前正在执行以下操作: SELECT id+"|"+name+"|"+otherfield+"|"+otherfield1+"\n" FROM table 是否有select语句可以选择每一列,而不必命名它们 差不多 SELECT * with "|" from Table 你可以用 如果您希望将输出保存在文件中,则可
1|name|otherfield|otherfield1
要生成这样的文件,我目前正在执行以下操作:
SELECT id+"|"+name+"|"+otherfield+"|"+otherfield1+"\n" FROM table
是否有select语句可以选择每一列
,而不必命名它们
差不多
SELECT * with "|" from Table
你可以用
如果您希望将输出保存在文件中,则可以尝试以下方法
SELECT *
INTO OUTFILE 'D://abc.txt'
FIELDS TERMINATED BY '|' LINES TERMINATED BY '\r\n'
FROM table
这里我使用了
\r\n
将每一行输出到新行(在windows上)对于Sybase ASE,为什么不使用内置的bcp实用程序更改删除器呢。默认情况下,它将捕获所有列
bcp MYDATABASE..MYTABLE out MYTABLEFILE.bcp -Uusername -Ppassword -SMYSERVER -c -t|
必须使用-t选项设置列delimeter,该选项只能与指定基于“字符”(人类可读)的bcp输出的-c选项一起使用。如果您使用的是基于Unix/Linux的系统,您可能需要避开管道,例如-\t首先,这真的是正确的方法吗?如果其中一列包含“|”怎么办?您不应该应用转义规则吗?@deceze这是一个很好的观点,不幸的是,读入这些规则的脚本“超出了我的控制”,需要|并且不支持任何转义字符。这是一个很好的老版本“它可以工作,所以不要碰它”。之前有一个mysql标签,但它已经被删除。知道为什么吗?这是Sybase数据库,不是MySQL。。。它以前被标记为mysql,但现在该标记不见了。这是针对Sybase数据库,而不是mysql
bcp MYDATABASE..MYTABLE out MYTABLEFILE.bcp -Uusername -Ppassword -SMYSERVER -c -t|