5

我正在编写一个简单的 SQL 语句来生成要加载到数据库中的 BCP 文件。

这些 BCP 文件采用以下格式:

1|name|otherfield|otherfield1

要构建这样的文件,我目前正在做:

SELECT id+"|"+name+"|"+otherfield+"|"+otherfield1+"\n" FROM table

是否有一个 select 语句可以选择every column而不必命名它们?

就像是

SELECT * with "|" from Table
4

3 回答 3

4

你可以使用SELECT ... INTO OUTFILE.

SELECT * INTO OUTFILE 'filename'
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
FROM yourtable;

http://dev.mysql.com/doc/refman/5.6/en/select-into.html

于 2012-12-20T13:40:12.203 回答
1

对于 Sybase ASE,为什么不使用内置的bcp实用程序更改分隔符。默认情况下它将捕获所有列。

bcp MYDATABASE..MYTABLE out MYTABLEFILE.bcp -Uusername -Ppassword -SMYSERVER -c -t|

您必须使用-t选项来设置列分隔符,它只能与指定基于“字符”(人类可读)的 bcp 输出的-c选项一起使用。如果您在基于 Unix/Linux 的系统上,您可能需要转义管道,例如-\t

于 2012-12-20T17:28:16.167 回答
1

如果你想在文件中输出,那么你可以试试这个

SELECT *
INTO OUTFILE 'D://abc.txt'
FIELDS TERMINATED BY '|' LINES TERMINATED BY '\r\n'
FROM table

在这里,我用于\r\n在新行上输出每一行(在窗口上)

于 2012-12-20T13:42:20.493 回答