Archive
Error Msg 7302, Cannot create an instance of OLE DB provider “Microsoft.Jet.OLEDB.4.0” for linked server – MSDN TSQL forum
–> Question:
Below is the script to export data from Access 2003 using SQL server 2012 in SQL Server Management Studio:
EXEC sp_addlinkedserver @server = 'SNE_SNAP2014', @provider = 'Microsoft.Jet.OLEDB.4.0', @srvproduct = 'OLE DB Provider for Jet', @datasrc = 'T:\Data Management\Project -SNAP SNE\SNE SNAP2014 T-Drive.mdb' GO
this results into following error:
Msg 7302, Level 16, State 1, Line 2
Cannot create an instance of OLE DB provider “Microsoft.Jet.OLEDB.4.0” for linked server “SNE_SNAP2014”.
–> My Answer:
Please make sure that both Access & SQL Server 2012 should be on same 32 or 64 bit architecture.
Check this blog post for resolution and more info: https://sqlwithmanoj.com/2012/07/10/querying-excel-2010-from-sql-server-in-64-bit-environment/
Ref Link.
SQLNCLI11 for linked server “XYZ” returned message “Requested conversion is not supported” | SQL Server 2012 upgrade behavior changes
This was a year long pending post that got lost in my blog posts archives. Today while filtering the Posts on my Dashboard I saw this in Edit mode. So I thought to make it live after doing some edits. So, here it goes 🙂
While upgrading to SQL Server 2012 from SQL Server 2008 R2 on my DEV box, I observed some behavioral changes with SQL 2012, one ETL job that was working fine on SQL 2008 R2 was not running and throwing following error in SQL 2012:
OLE DB provider “SQLNCLI11” for linked server “MyLocal” returned message “Requested conversion is not supported.”.
Msg 7341, Level 16, State 2, Line 1
Cannot get the current row value of column “(user generated expression).Expr1003” from OLE DB provider “SQLNCLI11” for linked server “MyLocal”.
The above error depicts that there is something wrong with the Linked Server. But the same Linked Server was working for other tables, and it was failing for a specific table only. I checked the table and the ETL script where the Linked Server was being used. That script had a SELECT list fetching records from source table via Linked Server. The column list was having a computed column in the end like: CAST(NULL as UNIQUEIDENTIFIER) AS U_ID. I was not sure why anybody would write that code and what was the need to add this computed column. I removed this column and the error was gone. So it was clear that the CASTing of NULL to UNIQUEIDENTIFIER datatype was throwing this error, but the same code was working fine in SQL Server 2008 R2.
(Please check at the bottom of the post for more such behavioral changes)
–> Here is the issue that I’ve reproduced:
This will run fine in previous versions of SQL Server, but will throw error in 2012:
–> CREATE Linked Server
USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'MyLocal', @srvproduct=N'MSSQL', @provider=N'SQLNCLI', @datasrc=N'MANOJPANDEY-PC', -- plz change the server name here. @provstr=N'PROVIDER=SQLOLEDB;SERVER=MY-PC' -- plz change the server name here. EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MyLocal',@useself=N'True', @locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL GO
–> Create a new table:
USE [AdventureWorks2012] GO SELECT BusinessEntityID, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, ModifiedDate INTO dbo.Person FROM [AdventureWorks2012].[Person].[Person]
–> Query table via Linked Server:
SELECT BusinessEntityID, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, ModifiedDate FROM [MyLocal].[AdventureWorks2012].dbo.[Person]
–> Query it after adding a column via Linked Server:
SELECT BusinessEntityID, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, ModifiedDate ,CAST(NULL as UNIQUEIDENTIFIER) AS U_ID FROM [MyLocal].[AdventureWorks2012].[dbo].[Person]
OLE DB provider "SQLNCLI11" for linked server "MyLocal" returned message "Requested conversion is not supported.". Msg 7341, Level 16, State 2, Line 1 Cannot get the current row value of column "(user generated expression).Expr1003" from OLE DB provider "SQLNCLI11" for linked server "MyLocal".
–> Creating a View in Remote Server:
CREATE VIEW [dbo].[vwPerson] AS SELECT BusinessEntityID, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, ModifiedDate ,CAST(NULL as UNIQUEIDENTIFIER) AS U_ID FROM [MyLocal].[AdventureWorks2012].[dbo].[Person]
–> View also fails, as it is also expanded (same error as above):
SELECT BusinessEntityID, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, ModifiedDate, U_ID FROM [MyLocal].[AdventureWorks2012].[dbo].[vwPerson]
–> Workaround 1:
SELECT BusinessEntityID, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, ModifiedDate ,CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER) AS U_ID FROM [MyLocal].[AdventureWorks2012].[dbo].[Person]
–> Workaround 2:
SELECT BusinessEntityID, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, ModifiedDate ,CAST(0x AS UNIQUEIDENTIFIER) AS U_ID FROM [MyLocal].[AdventureWorks2012].[dbo].[Person]
–> Final Cleanup:
DROP TABLE dbo.Person DROP VIEW dbo.vwPerson GO USE [master] GO EXEC master.dbo.sp_dropserver @server=N'MyLocal', @droplogins='droplogins' GO
–> I’ve documented more behavioral changes after SQL Server 2012 upgrade, and here is the list:
2. Temp #Tables created with negative IDs
3. No native Linked Server support to SQL Server 2000
SQL Error – Index (zero based) must be greater than or equal to zero and less than the size of argument list
SQL Server version is “SQL Server 2012(SP2-CU15-GDR)(KB3194725) – 11.0.5676.0(X64)”.
An error occurred when you applied SQL Server 2012 Service Pack 3 to the current server(see attached image)
–> Summary Log
Overall summary:
Final result: The patch installer has failed to update the shared features. To determine the reason for failure, review the log files.
Exit code (Decimal): -2068774911
Exit facility code: 1201
Exit error code: 1
Exit message: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
Start time: 2018-02-22 10:40:52
End time: 2018-02-22 10:41:22
Requested action: Patch
Solution:
There can be various reasons you might be getting this issue, like a failure of a previous installation of SQL server may corrupt the registry, and this registry corruption may initiate this issue.
There seems to be no direct fix to this, so try:
– Uninstalling all the patches, and re-install them in sequence.
– Or, uninstall the whole SQL Server completely and install fresh again.
SQL Error – The specified ‘@notify_email_operator_name’ is invalid (valid values are returned by sp_help_operator)
Today while creating some SQL Jobs I faced following error:
Msg 14234, Level 16, State 1, Procedure sp_verify_job, Line 245
The specified ‘@notify_email_operator_name’ is invalid (valid values are returned by sp_help_operator).
The Job’s Script was created from PROD environment and as the same operator was not available on my DEV server, executing same script on DEV environment was throwing this error. So now how to fix this error?
–> One method is to check if an Operator already exist n DEV server and use it in your SQL Job Script:
USE [msdb] GO EXEC sp_help_operator GO
–> If the Operator does not exist then create a new Operator by using following DDL query:
USE [msdb] GO EXEC msdb.dbo.sp_add_operator @name = N'OperatorName', @enabled = 1, @email_address = N'SupportEmail@DomainName.com', @category_name = N'Uncategorized' GO
… and use the Operator name in the Script that you got from PROD server, and update the below part of the DDL Script:
DECLARE @jobId BINARY(16) EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Acquire_Data_Source1', @enabled=1, @notify_level_eventlog=0, @notify_level_email=2, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @description=N'No description available.', @category_name=N'ESBIAcquisition', @owner_login_name=N'DOMAIN\Account', @notify_email_operator_name='Operatorname', -- <-- Here @job_id=@jobId OUTPUT
–> If you are not sure about the Operator name and just testing the Jobs in DEV or Test environment and don’t any email alerts then just assign NULL instead of the operator name like:
@notify_email_operator_name=NULL
Linked Server error: Named Pipes Provider: Could not open a connection to SQL Server [53] – MSDN TSQL forum
–> Question:
I am trying to create a linked server of a remote server in my local system.
and getting following error:
Named Pipes Provider: Could not open a connection to SQL Server [53]
OLE DB provider “SQLNCLI10” for linked server “MY_LINKED_SERVER” returned message “Login timeout expired”…
–> My Answer:
What SQL Server version you are working on?
Do you have proper access rights and permission to connect to the Remote server?
Check, if TCP/IP and Named Pipes are enabled in Remote Server, in Config Manager?
And, are you executing Linked Server from the same machine, or any remote client?
The error number is 53, which means Network Path is not Found, try to ping the server, check Server Name in your Linked Server DDL script, Also check for Windows Firewall settings.
Ref Link.





