I am working on banking
project. For migration purpose, I will call web service in store procedure and
based on this response I will process another task.
Create a Procedure named WebserviceCall
CREATE procedure WebserviceCall @UsrID as varchar(50) ,@Password AS Varchar(50) ,@AccountNo AS Varchar(50) AS BEGIN DECLARE @obj INT DECLARE @ValorDeRegreso INT DECLARE @sUrl VARCHAR(200) DECLARE @response VARCHAR(8000)='Failed' DECLARE @hr INT DECLARE @src VARCHAR(255) DECLARE @desc VARCHAR(255) BEGIN TRY SET @sUrl ='http://x.x.x.x/mtcwebservicetest/Service.asmx/GetSession?UserID='+@UsrID+'&Password='+@Password+''; EXEC sp_OACreate 'MSXML2.ServerXMLHttp',@obj out EXEC sp_OAMethod @obj,'open',NULL,'GET',@sUrl,false EXEC sp_OAMethod @obj,'send' --EXEC sp_OAGetProperty @obj,'responseText',@response out Exec sp_OAMethod @obj, 'responseText', @response OUTPUT --select @XmlResponse = CAST(@ResponseText as xml) SELECT @response [response],@sUrl,@obj EXEC sp_OADestroy @obj END TRY BEGIN CATCH --ROLLBACK TRANSACTION @TranName DECLARE @ErrorMessage AS VARCHAR(250) SELECT @ErrorMessage = ERROR_MESSAGE(); RAISERROR(@ErrorMessage,1,1); END CATCH END
When
I execute this procedure in SQL Server 2008 r2 I got below error:
SQL Server blocked access
to procedure ‘sys.sp_OACreate’ of component ‘Ole Automation Procedures’ because
this component is turned off as part of the security configuration for this
server. A system administrator can enable the use of ‘Ole Automation
Procedures’ by using sp_configure. For more information about enabling ‘Ole
Automation Procedures’, see “Surface Area Configuration” in SQL Server Books
Online. [SQLSTATE 42000] (Error 15281). The step failed.
This error informed us; “Ole
Automation Procedures” are disabled/ turned
off in current SQL Server. Default “Ole
Automation Procedures” are disabled in sql server and value is 0. When Enable
“OLE Automation Procedures”, value
will be 1.
Use Ole Automation Procedures option to
specify whether OLE Automation objects
can be instantiated within Transact-SQL batches. This option can also be
configured using the Policy-Based Management or the sp_configure stored procedure.
For
this purpose we have DBA permission to execute below statements.
sp_configure 'show advanced options', 1 GO RECONFIGURE; GO sp_configure 'Ole Automation Procedures', 1 GO RECONFIGURE; GO sp_configure 'show advanced options', 1 GO RECONFIGURE;
Below is the screen shot.
SP Configure |
Execute procedure again.
Comments
Post a Comment