① sql 分隔符
给你一个能处理分隔符的函数,这函数是sql server平台的,返回一个临时表
if exists(select name from sysobjects where id = object_id(N'jk01_f_split'))
drop function jk01_f_split
go
create function jk01_f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>''
insert @temp values(@SourceSql)
return
end
go
用法
select * from jk01_f_split(字段名, '分隔符')
后续的汉字拼接显示,建议你用其它程序实现
② pl/sql导出txt文件字段用逗号隔开
SQL> spool F:\AIT\LOG\05-13\DDL.log --指定输出文件
SQL> @F:\AIT\LOG\05-13\DDL.sql --执行SQL文件
SQL> spool off --关闭spool同时输出到命令1 的文件之中
③ sqlserver中导出txt格式数据库如何解决分隔符和数据库内容冲突问题
如果要导出为txt,必须要保证分隔符不会在任何字段中出现。
如果无法保证这一点,建议导出为xml格式,就不用考虑分隔符的问题了。即使字段中有xml中用到的关键字,系统也会自动替换。例如会将<替换成& lt;
④ 高手,在sql语句里如何提取出分隔符前后的字符不要太长的。
create FUNCTION f_STR(
@s varchar(100), --待分拆的字符串
@split varchar(1), --分隔符
@count int--第几个
)RETURNS varchar(20)
AS
BEGIN
declare @curr int,@re varchar(20)
set @s=@s+@split
set @curr=0
while @curr<>@count
begin
set @s=SUBSTRING(@s,(CHARINDEX(@split,@s)+1),(len(@s) -(CHARINDEX(@split,@s))))
set @curr=@curr+1
end
set @re=SUBSTRING(@s,1,(CHARINDEX(@split,@s) -1))
return @re
END
select dbo.f_STR('123,yu,33',',',0)
select dbo.f_STR('123,yu,33',',',1)
select dbo.f_STR('123,yu,33',',',2)
⑤ sql 在一列中,以某个字符为分隔符,获取这个分隔符前面的并显示出来
SELECT LEFT(email,charindex('#',email)-1) FROM test WHERE email like '%#%';
⑥ pl/sql设置列于列之间的分隔符号
一般用tab符,对应ascii码是chr(9) .
pl/sql developer 工具可以直接导出sql脚本,不需要自己导的:
选择tools ->export tables 选中你要导出的表,下面选择sql inserts 然后勾选create tables(导出建表语句),如果要把表中的数据导出,再勾选include storage;
⑦ sql 数据转换 千位分隔符
convert(varchar(30),cast(sc_value as money),1)
⑧ 将sybase iq 数据库中表的数据导出为带有分割符的文件。在线等。感谢
批量复制实用程序 (iq_bcp)
基于 Open Client 的实用程序,用于将数据库表以用户指定的格式复制到
操作系统文件或反向复制。iq_bcp 位于 $SYBASE\ASIQ-12_7\bin 中。
语法iq_bcp [ [ database_name. ] owner. ] table_name { in | out } datafile
参数表 3-1 列出了 iq_bcp 的可用参数。
表 3-1: iq_bcp 参数
例句:
bcp USERNAME.Table1 in 源文件 -S目录服务名 -Uuserid -Ppassword -J cp936 -c -r '\n' -t '分隔符' -m 4000000000000
bcp USERNAME.Table1 out 目标文件 -S目录服务名 -Uuserid -Ppassword -J cp936 -c -r '\n' -t '分隔符' -m 4000000000000
选项说明
-S 指定 iq_bcp 将连接的 Sybase IQ 服务器的名称。
-I 指定连接到 Sybase IQ 时要搜索的 interfaces 文件的名称和位置。
如果不指定 -I,iq_bcp 将在由 SYBASE 环境变量指定的目录下(例 Windows 中的 ini 目录)寻找 interfaces 文件,在 Windows 中为 sql.ini。
-U 指定 Sybase IQ 登录名。
-P 指定 Sybase IQ 口令。如果未指定 -Ppassword, iq_bcp 将提示提供口令。如果口令为NULL,可忽略 -P 标志。
-c 执行复制操作。
如果要在平台间共享数据,则使用这种跨平台文件格式。此参数不
对每个字段都进行提示;它使用 CHAR 作为数据文件中的所有列
的缺省存储类型,不带前缀,使用 \t (制表符)作为缺省的字段终
结符, \n (换行符)作为缺省的行终结符。
-J 指定客户端字符集。
iq_bcp 实用程序支持多字节字符数据。插入或提取数据时, -J
标志会将数据由服务器字符集转换为客户端字符集。如忽略 -J,客
户端字符集将设置为相应平台的缺省值,这样可能会导致错误的数
据转换,因为缺省字符集可能不是客户端所使用的字符集。
有关字符集的详细信息,请参见《Sybase IQ 系统管理指南》中的
第 11 章“国际语言和字符集”。
-v 显示 iq_bcp 的版本号和版权消息,并将此类信息返回操作系统。
-t 指定缺省的字段终结符。
-r 指定缺省的行终结符。
从命令行使用 -t 或 -r 参数指定终结符时,必须转义对 UNIX 操作系
统有特殊含义的字符(或 Windows 的命令提示符 shell)。可以在特
殊字符前面加一个反斜杠或使用引号将特殊字符括起来。在 iq_bcp
提示下输入(交互模式)时不必这样。
警告!不要以本机格式在 iq_bcp 中使用 -t 或 -r 参数。否则将出现意
外的结果,并且数据可能会损坏。
-A 指定要用于此 iq_bcp 会话的网络包大小。
下面的示例将网络包大小设置为 4096 字节:
iq_bcp pubs2..titles out table_out -A 4096
packet_size 必须介于缺省网络包大小和最大网络包大小配置变量的
值之间,且必须是 512 的倍数。
使用大于缺省值的网络包大小可提高大批量复制操作的性能