<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SnapJag Creative Designs &#187; SQL Server</title>
	<atom:link href="http://www.snapjag.com/tag/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.snapjag.com</link>
	<description>Best team of specialists in programming, hosting, photography, and creative system designs.</description>
	<lastBuildDate>Thu, 05 Aug 2010 20:00:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>SQL Server Best Practices</title>
		<link>http://www.snapjag.com/2010/04/sql-server-best-practices/</link>
		<comments>http://www.snapjag.com/2010/04/sql-server-best-practices/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 18:37:39 +0000</pubDate>
		<dc:creator>snapjag</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.snapjag.com/?p=873</guid>
		<description><![CDATA[There is nothing better than knowing exactly what needs to be done to get the best results from your technology. Especially from a database server. Why wouldn&#8217;t someone read the manual on how to care for a car to know how it works? Because everyone wants to have the satisfaction that they got in the [...]]]></description>
			<content:encoded><![CDATA[<p>There is nothing better than knowing exactly what needs to be done to get the best results from your technology. Especially from a database server.</p>
<p>Why wouldn&#8217;t someone read the manual on how to care for a car to know how it works? Because everyone wants to have the satisfaction that they got in the car, ran it, and never had to look at the manual! Yet, you didn&#8217;t know you had to do maintenance, where that maintenance should take place and at what intervals.  Well, this is where best practices come in. Don&#8217;t try and drive your car and let the engine churn without knowing how to best care for it.</p>
<p><a title="http://technet.microsoft.com/en-us/sqlserver/bb671430.aspx" href="http://technet.microsoft.com/en-us/sqlserver/bb671430.aspx">http://technet.microsoft.com/en-us/sqlserver/bb671430.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.snapjag.com/2010/04/sql-server-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL variables can act on each other</title>
		<link>http://www.snapjag.com/2009/04/sql-variables-can-act-on-each-other/</link>
		<comments>http://www.snapjag.com/2009/04/sql-variables-can-act-on-each-other/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 20:54:20 +0000</pubDate>
		<dc:creator>snapjag</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://www.snapjag.com/?p=449</guid>
		<description><![CDATA[There are many situations when you have a variable in a stored procedure and you want to add to it. Well, there is definately a slick way to build on variables within a single select statement. It&#8217;s necessary to reveal how this works in detail because it&#8217;s difficult to explain. So, the answer is in [...]]]></description>
			<content:encoded><![CDATA[<p>There are many situations when you have a variable in a stored procedure and you want to add to it. Well, there is definately a slick way to build on variables within a single select statement. It&#8217;s necessary to reveal how this works in detail because it&#8217;s difficult to explain. So, the answer is in the statement.</p>
<p><code>DECLARE @Number1 numeric(14,2)<br />
DECLARE @Number2 numeric(14,2)<br />
DECLARE @Number3 numeric(14,2)<br />
DECLARE @Total numeric(14,2)</p>
<p>-- Step 1: One way to to set variables is like this, on individual lines<br />
/*<br />
SET @Number1 = 15<br />
SET @Number2 = 25<br />
SET @Number3 = 50<br />
*/</p>
<p>-- Step 1: or, as I like to do it, use the SELECT because I can assign multiple variables at once.<br />
SELECT @Number1 = 15<br />
, @Number2 = 25<br />
, @Number3 = 50</p>
<p>-- Step 2: then, add the numbers together traditionally.<br />
SELECT @Total = @Number1 + @Number2 + @Number3<br />
SELECT [Total] = @Total</code></p>
<p>In a recent project it was necessary to grab a lot of numbers from multiple tables, perform calculations with them, and then return the results. The trick to assign multiple variables at once as indicated above yields the results of the simple trick. Instead of adding all the numbers in separate lines, do it all in one SELECT statement. Fast efficient results.</p>
<p><code>SELECT @Number1 = 15<br />
, @Number2 = 25<br />
, @Number3 = 50<br />
, @Total = @Number1 + @Number2 + @Number3</p>
<p>SELECT [Total] = @Total</code></p>
<p>It&#8217;s great that I can reference previous variables without having to write individual SELECT or SET statements. Makes for very slick code. Just make sure that if you move the variables around, they stay in the descending order of dependency or your numbers will be off.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snapjag.com/2009/04/sql-variables-can-act-on-each-other/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MS SQL Cursors are Evil</title>
		<link>http://www.snapjag.com/2009/04/ms-sql-cursors-are-evil/</link>
		<comments>http://www.snapjag.com/2009/04/ms-sql-cursors-are-evil/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 20:19:15 +0000</pubDate>
		<dc:creator>snapjag</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.snapjag.com/?p=446</guid>
		<description><![CDATA[Alright, they&#8217;re necessary at times, but for the most part you need to really avoid them. It&#8217;s not about the coding and simplicity of using them, it&#8217;s about the impacts they have in the backend and on performance. There are many situations where you can come out with the same results in a set based [...]]]></description>
			<content:encoded><![CDATA[<p>Alright, they&#8217;re necessary at times, but for the most part you need to really avoid them. It&#8217;s not about the coding and simplicity of using them, it&#8217;s about the impacts they have in the backend and on performance.<span id="more-446"></span></p>
<p>There are many situations where you can come out with the same results in a set based query as opposed to using a cursor. Again, not all the time, but yes for the most part. Why is it something that I strongly feel you should avoid. It&#8217;s the same reason that temporary tables, a-typical parameters (parameter sniffing), and other performance problem situations should be avoided.</p>
<p>In a nutshell, when cursors are used, the stored procedure must be recompiled every so often and there is a ton of overhead involved with that. So don&#8217;t use them at all costs. Cursors are great for needing to identify other fields and data per row. Where a set based query can&#8217;t accomplish that. Use them sparingly.</p>
<p>Last Resort<br />
Speaking of cursor overhead, if you have to use a cursor, then make sure you have applied the right attributes by asking yourself these questions.<br />
1) Do you need to performan an update on the cursor data? If not, then add the READONLY attribute.<br />
2) Do you need to traverse backwards on the cursor? If not, then add the FAST_FORWARD attribute.</p>
<p>By adding these attributes, you have greatly reduced the overhead of the cursor and make it a much more streamlined stored procedure. I would advise that you add these as a rule because it&#8217;s not very often that you would have to do these tasks.</p>
<p>Another option if you have to use Cursors &#8230; do not create or try to use temporary tables within the cursor loop. For the same reasons that you&#8217;ll want to minimize using temporary tables only because you must understand that the stored procedure will request a recompile every six (6) updates to a temporary table. That can hurt performance a lot.</p>
<p>Another option is to declare variables outside of the cursor loop and then use them in the loop. This helps with compiling and doing extra DECLARE work. It might be small, but it&#8217;s happening.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snapjag.com/2009/04/ms-sql-cursors-are-evil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Recompiles</title>
		<link>http://www.snapjag.com/2008/11/sql-recompiles/</link>
		<comments>http://www.snapjag.com/2008/11/sql-recompiles/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 23:17:25 +0000</pubDate>
		<dc:creator>snapjag</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://gleew.wordpress.com/?p=139</guid>
		<description><![CDATA[Here are some articles that describes the need to reference the owner (schema) of SQL Server stored procedure when called by applications. Also, making sure that the calls are sensitive to the case of the schema.ProcName. Reducing blocking by compile locks Reducing Stored Procedure recompiles Algorithm for Auto-Update stats and recompile determination) Following these suggestion [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some articles that describes the need to reference the owner (schema) of SQL Server stored procedure when called by applications. Also, making sure that the calls are sensitive to the case of the <em>schema.ProcName</em>.</p>
<ul>
<li><a href="http://support.microsoft.com/kb/263889" target="_blank">Reducing blocking by compile locks</a></li>
<li><a href="http://support.microsoft.com/kb/243586" target="_blank">Reducing Stored Procedure recompiles</a></li>
<li><a href="http://support.microsoft.com/kb/195565/EN-US" target="_blank">Algorithm for Auto-Update stats and recompile determination)</a></li>
</ul>
<p>Following these suggestion can reduce CPU activity, needless recompiles, and prevent extra procedure cache examinations, which reduces the profiler SP:CacheMiss activity and subsequent contention.</p>
<p><span id="more-267"></span></p>
<p>The first article is where the infamous <strong><em>Note</em></strong> is that describes calling procedures without adhering to case-sensitive names. Here is the excerpt (bold added for emphasis):</p>
<blockquote><p><strong>Note</strong> If an owner-qualified procedure is executed <strong>with a different case than what the owner-qualified procedure</strong> was created as, <strong>the owner-qualified procedure can get a CacheMiss or request a COMPILE lock</strong>, but eventually use the cached plan. Therefore, this would not actually recompile the procedure and should not cause much of an overhead. But in certain situations the request for a COMPILE lock can get into a &#8220;blocking chain&#8221; situation if there are many SPIDs trying to execute the same procedure with a different case than what the procedure was created as. This is true regardless of the sort of order or collation being used on the server or on the database. <strong>The reason for this behavior is that the algorithm being used to find the procedure in cache is based on hash values</strong> (for performance reasons) <strong>which can change if the case is different</strong>. The workaround is to drop and create the procedure with the same case as it is executed by the application. You can also make sure that the procedure is executed from all applications that use the same case.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.snapjag.com/2008/11/sql-recompiles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMO SQL Server Error Reading Stored Procedures Collection</title>
		<link>http://www.snapjag.com/2008/11/sql_smo_sp_error/</link>
		<comments>http://www.snapjag.com/2008/11/sql_smo_sp_error/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 17:53:17 +0000</pubDate>
		<dc:creator>snapjag</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://gleew.wordpress.com/?p=123</guid>
		<description><![CDATA[The following error is appearing while running Visual Studio 2005 and developing an application with SMO capabilities. It appears when trying perform a foreach( on ActiveDB.StoredProcedures). Could not load file or assembly &#8216;Microsoft.SqlServer.BatchParser, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91&#8242; or one of its dependencies. An attempt was made to load a program with an incorrect format. I found [...]]]></description>
			<content:encoded><![CDATA[<p>The following error is appearing while running Visual Studio 2005 and developing an application with SMO capabilities. It appears when trying perform a <em>foreach( on ActiveDB.StoredProcedures)</em>.</p>
<blockquote><p>Could not load file or assembly &#8216;Microsoft.SqlServer.BatchParser, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91&#8242; or one of its dependencies. An attempt was made to load a program with an incorrect format.</p></blockquote>
<p>I found an MSDN article that recommends downloading the 64 bit SMO assembly.<span id="more-266"></span></p>
<p>Here is the Microsoft MSDN article that talks about SQL Server connectivity for both 2005 and backward compatibility.</p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=D09C1D60-A13C-4479-9B91-9E8B9D835CDC&amp;displaylang=en" target="_blank">Feature Pack for Microsoft SQL Server 2005</a></li>
</ul>
<p>I had to close all applications, especially Visual Studio and then installed the following application.</p>
<ul>
<li><a href="http://download.microsoft.com/download/4/4/D/44DBDE61-B385-4FC2-A67D-48053B8F9FAD/SQLServer2005_ADOMD_x64.msi" target="_blank"></a><a href="http://download.microsoft.com/download/4/4/D/44DBDE61-B385-4FC2-A67D-48053B8F9FAD/SQLServer2005_XMO_x64.msi"><span><strong></strong></span></a><strong><a href="http://download.microsoft.com/download/4/4/D/44DBDE61-B385-4FC2-A67D-48053B8F9FAD/SQLServer2005_XMO_x64.msi">X64 Package</a></strong> (SQLServer2005_XMO_x64.msi) &#8211; 14675 KB</li>
</ul>
<p>My system info is:</p>
<ul>
<li>OS Name &#8211; Microsoft® Windows Vista™ Home Premium</li>
<li>Version &#8211; 6.0.6001 Service Pack 1 Build 6001</li>
<li>System Type &#8211; x64-based PC</li>
<li>Processor &#8211; AMD Turion(tm) X2 Dual-Core Mobile RM-70, 2000 Mhz, 2 Core(s), 2 Logical Processor(s)</li>
</ul>
<p>The installation took care of updating and using the latest SMO objects in the project. No removing of Assemblies or references was needed. Worked like a charm.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snapjag.com/2008/11/sql_smo_sp_error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 2005 Agent Schedule Not Updating</title>
		<link>http://www.snapjag.com/2008/10/sql-server-2005-agent-schedule-not-updating/</link>
		<comments>http://www.snapjag.com/2008/10/sql-server-2005-agent-schedule-not-updating/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 17:20:58 +0000</pubDate>
		<dc:creator>snapjag</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://gleew.wordpress.com/?p=86</guid>
		<description><![CDATA[Ewwwh, this was a nasty little bug. Let me describe the title &#8230; I was having to update all our database data and schema to support the GMT/UTC baseline and then accounts and clients would register what timezone they are in and our system would reflect the dates and times from GMT/UTC to the registered [...]]]></description>
			<content:encoded><![CDATA[<p>Ewwwh, this was a nasty little bug. Let me describe the title &#8230; I was having to update all our database data and schema to support the GMT/UTC baseline and then accounts and clients would register what timezone they are in and our system would reflect the dates and times from GMT/UTC to the registered timezone.<span id="more-261"></span></p>
<p>In order to support this, we had to make adjustments to the times on the servers. Update the database data, and more. For this little bug, I wanted to let you know that when I updated the schedule for all my SQL Server Agent Jobs, the schedule did not take effect.</p>
<ul>
<li>Issue: Old job schedules were still active (as visible by the Job Activity Monitor) even though the schedule says otherwise</li>
<li>Takeaway: Run through all changed jobs in the Job Activity Monitor to make sure the Next Run Time reflects the new date/time.</li>
<li>How to Fix: Go through each job schedule, disable the schedule, commit all dialogs, go back in and re-enable each schedule. This updates to the new date/time.</li>
</ul>
<p>Let me describe what we did and didn&#8217;t do and how to watch out for it. Our environment is setup as such, some details are irrelevant, so I will keep them basic:</p>
<ul>
<li>Windows Server 2008</li>
<li>SQL Server Enterprise Edition 2005</li>
<li>Lots of RAM and HDD (SAN)</li>
<li>Window and SQL Clustered</li>
</ul>
<p>We also have the following environments:</p>
<ul>
<li>Prod &#8211; Production (detailed above)</li>
<li>QA &#8211; Quality Assurance (same as above minus clustering)</li>
<li>Dev &#8211; Development (same as above minus clustering)</li>
</ul>
<p>Well, we made all the changes in Dev, rolled out to QA and all tests (eventually) succeeded. Then came time for rollout. We knew that clustering was the missing element in Dev/QA so we had to modify our rollout procedures to take that into account and make sure proper testing and checks were in place to compensate.</p>
<p>Here&#8217;s the kicker. We had some jobs that were running at 3:00 AM (MDT) and needed to be adjusted to 9:00 (UTC). Well, we followed these steps to rollout (which was from 12:00 AM (MDT) to 5:00 AM (MDT):</p>
<ol>
<li>Ran Full backups in the morning hours of the rollout day</li>
<li>Run Diffs right before rollout</li>
<li>Turn off the SQL Agent so any jobs that capture snapshots and do adjustments are all disabled</li>
<li>Make all adjustments to server times, schema, and data</li>
<li>Update the SQL Agent schedules to run on the adjusted times so that resources are available in our off-peak hours according to UTC and not the former MDT.</li>
<li>Test</li>
<li>Complete</li>
</ol>
<p>Alright, step 3 and 4 is what bit us in the butt. In QA and DEV on non-clustered servers, the SQL Agent service being disabled made the SQL Agent completely unavailable from Enterprise Manager. We couldn&#8217;t update schedules or anything else. We had to turn the SQL Agent back on, and then update everything. However, in production where there is a clustered server. Turning off the SQL Agent in the Cluster Administrator doesn&#8217;t completely shutdown the SQL Agent. It was still accessible from the Enterprise Manager.</p>
<p>We recognized this and took advantage of the opportunity to update the schedules while we were waiting for data to update (hours of time). This would make it so we didn&#8217;t lose any precious minutes running through 30 job schedules and getting them all updated before any of them ran.</p>
<p>Well, we recognized later that some of the jobs were still running on the old scheduled time. Looking in the Job Activity Monitor, the Next Run date/time reflected the old schedule!</p>
<p>So for example, a query to remove old historical records that was scheduled to run at 2:00 AM (MDT) was now supposed to run at 8:00 AM (UTC). The Next Run column in the Job Activity Monitor stated 2:00 AM. So I took offline the SQL Agent in the Cluster Administrator and put it back online thinking that the schedules were being cached. No go. Same old schedules.</p>
<p>I then decided to Disable and Enable the schedule on a job, refreshed the Job Activity Monitor and it now reflected the new time. Finally, the work around. The funny thing is though that some of the jobs reflected the new scheduled and the majority of them didn&#8217;t. I can&#8217;t recall if there were any tweaks I did that would make a difference, but &#8230;</p>
<p>What a nasty little bug. It was all because the SQL Agent was still &#8220;online&#8221; and available in my production Cluster environment. What I would do different? It is to not update the schedules until the SQL Agent is back online (in the clustered environment).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snapjag.com/2008/10/sql-server-2005-agent-schedule-not-updating/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL Server Linked Server to Oracle</title>
		<link>http://www.snapjag.com/2008/03/sql-server-linked-server-to-oracle/</link>
		<comments>http://www.snapjag.com/2008/03/sql-server-linked-server-to-oracle/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 21:46:44 +0000</pubDate>
		<dc:creator>snapjag</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.snapjag.com/?p=200</guid>
		<description><![CDATA[As a database administrator by trade, I have had a very perplexing task to have my SQL Server 2005 Enterprise servers communicate with my Oracle 10g box and gather data in real-time in fast, efficient ways. This article will go over the steps to setup the the linked server and some of the gotchas so [...]]]></description>
			<content:encoded><![CDATA[<p>As a database administrator by trade, I have had a very perplexing task to have my SQL Server 2005 Enterprise servers communicate with my Oracle 10g box and gather data in real-time in fast, efficient ways. This article will go over the steps to setup the the linked server and some of the gotchas so others have a successful scenario to glean from.<span id="more-200"></span></p>
<ol>
<li>Install the Oracle Client from Oracle (10.2.x client version) on the SQL Server box</li>
<li>Setup the TNS to the Oracle box through the Oracle Net Manager application
<ol>
<li>Click the ADD (+) icon under Local | Service Naming</li>
<li>Type in the Service Name, which is used to find in the Service Naming list and the reference to the Service Name in SQL Developer, for example</li>
<li>Choose the Protocol, which is usually TCP/IP</li>
<li>Type in the Host Name, which is the Name or IP Address of the Oracle server.</li>
<li>Type in the Service Name, which is the name of the service or the Global Database Name. It can get confusing between this one and the Service Name above (#1). The difference is that this one (#5) is used to identify the Oracle Name. TNS is a go between. Use (#1) in your app, which then goes through the TNS, which then points to the Service Name (#5) at the database. Another way to look at it is, from your Webserver or SQL Server, directly to Oracle, you go through the TNS using (#1) as the hard coded reference</li>
<li>Specify the Connection Type, which is either Default or Dedicated Server</li>
</ol>
</li>
<li>First, turn on the Allow InProcess option
<ol>
<li>In SQL Server enterprise manager, expand Server Objects node, and then expand the Providers node.</li>
<li>Right-click on the OraOLEDB.Oracle provider and click Properties</li>
<li>Check the Allow Inprocess option (at least this has to be done on my machines)</li>
</ol>
</li>
<li>Second, create the Oracle linked server
<ol>
<li>Right-click on Linked Servers node and click New Linked Server</li>
<li>Type in the name of the linked server as it would appear in the Linked Server list and as it would be referenced by SQL scripts</li>
<li>Choose &#8220;Other data source&#8221; and select the <em>Oracle Provider for Ole DB</em>. If this is not an option, then follow instructions to install the Oracle Client.</li>
<li>Type in the Product Name, which is the Service Name in #2 of #2 above.</li>
<li>Type in the Data Source, which is the Service Name in #2 of #2 above.</li>
<li>In the Security tab, type in the Remote Login and Password under the last option &#8220;Be made using this security context:&#8221;</li>
<li>Click OK to commit the changes</li>
</ol>
</li>
<li>Write the sql query using the following example
<ol>
<li>select * from openquery(oraclels, &#8216;select * from &lt;dbname&gt;.&lt;tablename&gt; where &lt;clause&gt;&#8217;)</li>
</ol>
</li>
</ol>
<p>This doesn&#8217;t give the fastest results that we have been able to achieve. There is NOT an easy way to build the query on the fly with variable parameters and have it work quickly. You could create an EXECUTE @SQL statement that has been built around the same query above, but not one that is then in the same batch. The query has to be static and then supply any variable clauses. For example&#8230;</p>
<p>select field1, field2<br />
from (select * from openquery (oraclels, &#8216;select * from db.table where &lt;static clause&gt;&#8217;)<br />
where &lt;variable clause&gt;</p>
<p>Hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.snapjag.com/2008/03/sql-server-linked-server-to-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
