① 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 的倍數。
使用大於預設值的網路包大小可提高大批量復制操作的性能