62,046
社区成员
发帖
与我相关
我的任务
分享
declare @ServiceUrl as varchar(1000)
declare @UrlAddress varchar(500)
--WebService地址:以http开头,结尾带斜杠,例如'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/'
set @UrlAddress = 'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/'
declare @FunName varchar(50)
--WebService中调用的方法名:例如'getMobileCodeInfo'
set @FunName = 'getMobileCodeInfo'
--以下参数对应WebService中4个参数的[参数名]
declare @P1 varchar(800),@P2 varchar(100)
set @P1 = 'mobileCode'
set @P2 = 'userid'
declare @P1_Value varchar(100),@P2_Value varchar(100)
set @P1_Value = '13800138000'
set @P2_Value = ''
set @ServiceUrl = @UrlAddress + @FunName + '?' + @P1 + '=' + @P1_Value +'&' + @P2 + '=' + @P2_Value
Declare @Object as Int
Declare @ResponseText as Varchar(8000)
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
GO
CREATE PROCEDURE [dbo].[pt_BarcodeForJRpt]
(
@ObjId VARCHAR(2000)
)
AS
Begin
--QRCODE_BLOB_API
declare @ObjValue varbinary(16)
Select @ObjValue=ObjValue
from BarcodeBlobTab
where ObjId=@ObjId
if @ObjValue is null
begin
declare @ServiceUrl as varchar(1000)
declare @UrlAddress varchar(500)
set @UrlAddress = 'http://192.168.0.128/qrcode/show?v='
set @ServiceUrl = @UrlAddress + @ObjId
Declare @Object as Int
Declare @ResponseText as Varchar(8000)
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
end
END
PROCEDURE Create_Qrcode(
v_ VARCHAR2 )
IS
--
req_ utl_http.req;
resp_ utl_http.resp;
len_ NUMBER;
blob_ BLOB;
raw_ RAW(32767);
--
key_ qrcode_blob_tab.obj_id%TYPE;
BEGIN
General_SYS.Init_Method( lu_name_, 'QRCODE_BLOB_API', 'Create_Qrcode');
key_ := substrb( v_, 1, 200);
req_ := utl_http.begin_request('http://192.168.0.128/qrcode/show?v=' || key_ );
utl_http.set_header(req_, 'User-Agent', 'Mozilla/4.0');
resp_ := utl_http.get_response(req_);
--
dbms_lob.createtemporary( blob_, TRUE );
BEGIN
LOOP
utl_http.read_raw(resp_, raw_, 32767);
dbms_lob.writeappend( blob_, utl_raw.length(raw_), raw_);
END LOOP;
EXCEPTION WHEN utl_http.end_of_body THEN
NULL;
END;
utl_http.end_response( resp_ );
qrcode_blob_api.Upload_Blob( key_, blob_ );
END Create_Qrcode;