Ⅰ sql 2008使用Database Mail將查詢結果作為xls附件發送。但附件的格式全亂了.怎樣解決
一般做法是資料庫中存放的是附件的路徑和文件名而不是文件的內容,當用戶打開郵件頁面時附件處有附件的超鏈接。這樣就不存在亂碼問題,我這邊就是用這種方式的。
Ⅱ sql 如何批量替換郵箱後綴
以表格a,欄位g(郵箱地址)為例:
SELECTREPLACE(''abcdefghicde'',''cde'',''xxx'')--返回:「abxxxfghixxx」
Ⅲ 如何用oracleSQL查詢手機、郵箱格式不正確
寫個過程,使用正則表達式來描述手機號和郵箱模式,然後用regexp_like函數來搜索符合模式的手機號和郵箱。
Ⅳ 資料庫SQL service 2005怎樣驗證發送郵件地址的Email格式是否正確
一. SQL SERVER 2005及以上版本開始支持正則表達式,
大致步驟是
1.下載他提供的壓縮包,裡面有源代碼和安裝腳本
2.將DLL復制到SQL Server 規定的BINN目錄下
3.運行INSTALL.sql這個腳本
http://www.codeproject.com/KB/database/xp_pcre.aspx
然後可以運行如下SQL:
SQL SERVER:
SELECT
master.dbo.fn_pcre_match(Email,'^[^\[\]\(\)\\<>:;,@.]+[^\[\]\(\)\\<>:;,@]*@[a-z0-9A-Z]+(([.]?[a-z0-9A-Z]+)*[-]*)*[.]([a-z0-9A-Z]+[-]*)+$') )
FROM TABLE_NAME:
正則表達式可以寫成:'^[^\[\]\(\)\\<>:;,@.]+[^\[\]\(\)\\<>:;,@]*@[a-z0-9A-Z]+(([.]?[a-z0-9A-Z]+)*[-]*)*[.]([a-z0-9A-Z]+[-]*)+$')
二.解釋相關的意義
1. /^$/ 這個是個通用的格式。
^ 匹配輸入字元串的開始位置;$匹配輸入字元串的結束位置
2. 裡面輸入需要實現的功能。
* 匹配前面的子表達式零次或多次;
+ 匹配前面的子表達式一次或多次;
?匹配前面的子表達式零次或一次;
\d 匹配一個數字字元,等價於[0-9]
Ⅳ SQL郵件發送
你的郵件伺服器上可能不支持ssl加密但是你的賬戶配的時候選擇了SSL加密 否則反之 你去你的賬戶中查看你的SSL加密即可
Ⅵ 如何用sql語句檢測郵箱格式
自己沒親自寫過 這是引用別人的 先申明一下 使用正則表達式比較好
CREATE FUNCTION F_EMAIL
(
@EMAIL VARCHAR(50)
)
RETURNS INT --返回1是正確;返回0是錯誤
BEGIN
DECLARE @VALUE INT,@LEN INT
DECLARE @TMP VARCHAR(50)
DECLARE @CHECK1 VARCHAR(50)
DECLARE @CHECK2 VARCHAR(50)
DECLARE @CHECK3 VARCHAR(50)
SET @TMP=RTRIM(LTRIM(@EMAIL))
SET @LEN=LEN(@TMP)
IF @LEN-LEN(REPLACE(@TMP,'@',''))=1 AND @LEN-LEN(REPLACE(@TMP,'.',''))>=1 AND CHARINDEX('@',@TMP)<>1
BEGIN
SET @CHECK1=LEFT(@TMP,CHARINDEX('@',@TMP)-1)
SET @CHECK2=STUFF(@TMP,1,CHARINDEX('@',@TMP),'')
SET @CHECK3=STUFF(@CHECK2,1,CHARINDEX('.',@CHECK2),'')
SET @CHECK2=LEFT(@CHECK2,CHARINDEX('.',@CHECK2)-1)
IF LEN(@CHECK1)>0 and LEN(@CHECK2)>0 AND LEN(@CHECK3)>0
BEGIN
IF PATINDEX('%[^a-zA-Z0-9._-]%',@CHECK1)>0
SET @VALUE=0
ELSE
BEGIN
IF PATINDEX('%[^a-zA-Z0-9_-]%',@CHECK2)>0
SET @VALUE=0
ELSE
BEGIN
IF CHARINDEX(UPPER(@CHECK2),UPPER('gmail,QQ,163,sina,yahoo'))>0
BEGIN
IF PATINDEX('%[^a-zA-Z0-9._-]%',@CHECK3)>0
SET @VALUE=0
ELSE SET @VALUE=1
END
ELSE SET @VALUE=0
END
END
END
ELSE SET @VALUE=0
END
ELSE SET @VALUE=0
RETURN @VALUE
END
--測試
create table tb
(
id int identity,
email varchar(50),
CONSTRAINT chk_email CHECK (dbo.F_EMAIL(email)=1)
)
insert into tb SELECT '[email protected]'
insert into tb SELECT '[email protected]'
insert into tb SELECT '[email protected]'
insert into tb SELECT '[email protected]'
insert into tb SELECT 'AS@[email protected]'
/*
(所影響的行數為 1 行)
伺服器: 消息 547,級別 16,狀態 1,行 1
INSERT 語句與 COLUMN CHECK 約束 'chk_email' 沖突。該沖突發生於資料庫 'Test',表 'tb', column 'email'。
語句已終止。
(所影響的行數為 1 行)
(所影響的行數為 1 行)
伺服器: 消息 547,級別 16,狀態 1,行 1
INSERT 語句與 COLUMN CHECK 約束 'chk_email' 沖突。該沖突發生於資料庫 'Test',表 'tb', column 'email'。
語句已終止。*/
SELECT * FROM TB
/*
id email
----------- --------------------------------------------------
1 [email protected]
3 [email protected]
4 [email protected]
(所影響的行數為 3 行)
*/
Ⅶ SQL資料庫中email的@約束怎麼寫
SQL資料庫中email的@約束可用check語句。
工具:sqlserver 2008 R2
步驟:
1、打開sqlserver 2008 R2中的SSMS,連接到指定資料庫。
2、創建員工表,其中包含email欄位,並且要對email欄位加以@的約束,語句如下:
createtable員工
(工號varchar(10),
姓名varchar(20),
性別varchar(2),
emailvarchar(50)check(emaillike'%@%'))
3、測試email欄位包含@的數據,可正常插入。
insertinto員工values('001','東東','男','[email protected]')