<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Preprocessor For External Tables</title>
	<atom:link href="http://structureddata.org/2008/11/19/preprocessor-for-external-tables/feed/" rel="self" type="application/rss+xml" />
	<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/</link>
	<description>Oracle Database Performance And Scalability Blog</description>
	<lastBuildDate>Mon, 01 Mar 2010 22:11:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: New External Table Functionality - PreProcessing and Data Pump (The Data Warehouse Insider)</title>
		<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/comment-page-1/#comment-330</link>
		<dc:creator>New External Table Functionality - PreProcessing and Data Pump (The Data Warehouse Insider)</dc:creator>
		<pubDate>Wed, 25 Feb 2009 17:00:10 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=291#comment-330</guid>
		<description>[...] For some more info on the actual syntax, I noticed Greg wrote a full example in his posting here. [...]</description>
		<content:encoded><![CDATA[<p>[...] For some more info on the actual syntax, I noticed Greg wrote a full example in his posting here. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bob</title>
		<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/comment-page-1/#comment-333</link>
		<dc:creator>Bob</dc:creator>
		<pubDate>Sun, 23 Nov 2008 18:43:14 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=291#comment-333</guid>
		<description>Regarding security, the user running the load needs to be granted EXECUTE permission on &quot;exec_dir&quot; (in this example). One recommendation is that rather than granting execute on exec_dir which in this example points to /bin, is simply to create another directory that holds just the execuatbles (or scripts) that the preprocessor will use.
EXECUTE is a new permission that can be grant to a directory in 11.1.0.7.</description>
		<content:encoded><![CDATA[<p>Regarding security, the user running the load needs to be granted EXECUTE permission on &#8220;exec_dir&#8221; (in this example). One recommendation is that rather than granting execute on exec_dir which in this example points to /bin, is simply to create another directory that holds just the execuatbles (or scripts) that the preprocessor will use.<br />
EXECUTE is a new permission that can be grant to a directory in 11.1.0.7.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/comment-page-1/#comment-332</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Sun, 23 Nov 2008 05:16:04 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=291#comment-332</guid>
		<description>@Jens

I&#039;m not sure what is so great about listing files in a directory via an external table that it warrants a paper, but whatever...

Restricting &quot;create directory&quot; or limiting who has execute on the directory (database directory, not filesystem) are options.  Most utilities would be in /bin or /usr/local/bin or similar so only root could put files there to be used in the preprocessor.</description>
		<content:encoded><![CDATA[<p>@Jens</p>
<p>I&#8217;m not sure what is so great about listing files in a directory via an external table that it warrants a paper, but whatever&#8230;</p>
<p>Restricting &#8220;create directory&#8221; or limiting who has execute on the directory (database directory, not filesystem) are options.  Most utilities would be in /bin or /usr/local/bin or similar so only root could put files there to be used in the preprocessor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jens Petersen</title>
		<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/comment-page-1/#comment-338</link>
		<dc:creator>Jens Petersen</dc:creator>
		<pubDate>Sat, 22 Nov 2008 18:41:49 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=291#comment-338</guid>
		<description>From a developers perspective this is a great new feature and I&#039;m just about to write a paper how to use this to list all files in a directory.
But from a security perspective this sounds worryingly like opening up new huge holes.
Is there any way to restrict the usage of the preprocessor clause to certain users or disable it at all?</description>
		<content:encoded><![CDATA[<p>From a developers perspective this is a great new feature and I&#8217;m just about to write a paper how to use this to list all files in a directory.<br />
But from a security perspective this sounds worryingly like opening up new huge holes.<br />
Is there any way to restrict the usage of the preprocessor clause to certain users or disable it at all?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Log Buffer #124: a Carnival of the Vanities for DBAs</title>
		<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/comment-page-1/#comment-337</link>
		<dc:creator>Log Buffer #124: a Carnival of the Vanities for DBAs</dc:creator>
		<pubDate>Fri, 21 Nov 2008 17:31:15 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=291#comment-337</guid>
		<description>[...] Rahn of Structured Data explained the use of a preprocessor for external tables. He writes, &#8220;Before External Tables existed in the Oracle database, loading from flat files [...]</description>
		<content:encoded><![CDATA[<p>[...] Rahn of Structured Data explained the use of a preprocessor for external tables. He writes, &#8220;Before External Tables existed in the Oracle database, loading from flat files [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nigel Thomas</title>
		<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/comment-page-1/#comment-334</link>
		<dc:creator>Nigel Thomas</dc:creator>
		<pubDate>Fri, 21 Nov 2008 10:50:42 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=291#comment-334</guid>
		<description>@Carey - excellent idea - of course we can make a proxy file for any data source (which could contain the real parameters for the pre-processor - like source URL for example)

@Stewart - yes, the main benefit of streaming is (a) for integration with a non-Oracle source and (b) so that data-in-flight (maybe from SQL Server to DB/2) doesn&#039;t *have* to be physically staged in the (Oracle) transformation hub before it is delivered to its final destination. In the old days we did that with a PL/SQL pipeline using UTL_FILE in and out, then piping into SQL*Loader; nowadays we can have the source treated as an external table and do the transformation as part of the SELECT from that.</description>
		<content:encoded><![CDATA[<p>@Carey &#8211; excellent idea &#8211; of course we can make a proxy file for any data source (which could contain the real parameters for the pre-processor &#8211; like source URL for example)</p>
<p>@Stewart &#8211; yes, the main benefit of streaming is (a) for integration with a non-Oracle source and (b) so that data-in-flight (maybe from SQL Server to DB/2) doesn&#8217;t *have* to be physically staged in the (Oracle) transformation hub before it is delivered to its final destination. In the old days we did that with a PL/SQL pipeline using UTL_FILE in and out, then piping into SQL*Loader; nowadays we can have the source treated as an external table and do the transformation as part of the SELECT from that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/comment-page-1/#comment-340</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Fri, 21 Nov 2008 02:18:10 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=291#comment-340</guid>
		<description>@Stewart

The preprocessor can be uncompress/gunzip or any other command that can output text to stdout.</description>
		<content:encoded><![CDATA[<p>@Stewart</p>
<p>The preprocessor can be uncompress/gunzip or any other command that can output text to stdout.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stewart Bryson</title>
		<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/comment-page-1/#comment-339</link>
		<dc:creator>Stewart Bryson</dc:creator>
		<pubDate>Fri, 21 Nov 2008 02:14:21 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=291#comment-339</guid>
		<description>Greg:

Are you constrained by uncompress-type commands, or could the preprocessor call other sorts of command-line entities, such as decrypt commands, etc?

Nigel:

If you are loading an Oracle database with data from a remote Oracle database... there&#039;s no need to trouble yourself with all of this. The INSERT /*+ APPEND */ into SELECT * FROM... across a DBLINK will perform similarly. This initiates the direct path API, very similar to SQL-Loader&#039;s DIRECT mode. However, using the direct-path API inside of SQL gives some benefits that SQL-Loader never had: the MERGE statement, multi-table insert, etc.

Your point about using this scenario to load from other databases is not lost on me, however: that would be very valuable indeed. That&#039;s what Informatica does to speed up loading into Oracle databases. Since it cannot support the direct-path API from inside SQL, it actually streams data through SQL-Loader in a similar way.


Regards,

Stewart</description>
		<content:encoded><![CDATA[<p>Greg:</p>
<p>Are you constrained by uncompress-type commands, or could the preprocessor call other sorts of command-line entities, such as decrypt commands, etc?</p>
<p>Nigel:</p>
<p>If you are loading an Oracle database with data from a remote Oracle database&#8230; there&#8217;s no need to trouble yourself with all of this. The INSERT /*+ APPEND */ into SELECT * FROM&#8230; across a DBLINK will perform similarly. This initiates the direct path API, very similar to SQL-Loader&#8217;s DIRECT mode. However, using the direct-path API inside of SQL gives some benefits that SQL-Loader never had: the MERGE statement, multi-table insert, etc.</p>
<p>Your point about using this scenario to load from other databases is not lost on me, however: that would be very valuable indeed. That&#8217;s what Informatica does to speed up loading into Oracle databases. Since it cannot support the direct-path API from inside SQL, it actually streams data through SQL-Loader in a similar way.</p>
<p>Regards,</p>
<p>Stewart</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rittman Mead Consulting  &#187; Blog Archive   &#187; Preprocessing Input Files and 11.1.0.7 External Tables</title>
		<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/comment-page-1/#comment-331</link>
		<dc:creator>Rittman Mead Consulting  &#187; Blog Archive   &#187; Preprocessing Input Files and 11.1.0.7 External Tables</dc:creator>
		<pubDate>Thu, 20 Nov 2008 23:22:44 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=291#comment-331</guid>
		<description>[...] a quick note to point to Greg Rahn’s posting on External Table Preprocessors in Oracle 11g 11.1.07. Prior to 11.1.0.7, if a file that you were going to use via an external table needed [...]</description>
		<content:encoded><![CDATA[<p>[...] a quick note to point to Greg Rahn’s posting on External Table Preprocessors in Oracle 11g 11.1.07. Prior to 11.1.0.7, if a file that you were going to use via an external table needed [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carey</title>
		<link>http://structureddata.org/2008/11/19/preprocessor-for-external-tables/comment-page-1/#comment-336</link>
		<dc:creator>Carey</dc:creator>
		<pubDate>Thu, 20 Nov 2008 18:48:48 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=291#comment-336</guid>
		<description>Nigel,
I wonder if you could get by with a dummy file to make it happy, and use a script as your &quot;preprocessor&quot; to read the pipe instead.</description>
		<content:encoded><![CDATA[<p>Nigel,<br />
I wonder if you could get by with a dummy file to make it happy, and use a script as your &#8220;preprocessor&#8221; to read the pipe instead.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
