<?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>OraQA &#187; PL/SQL</title>
	<atom:link href="http://oraqa.com/category/plsql/feed/" rel="self" type="application/rss+xml" />
	<link>http://oraqa.com</link>
	<description>Oracle Question and Answer</description>
	<lastBuildDate>Tue, 06 Jul 2010 00:08:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to solve the Anagrams Puzzle in SQL</title>
		<link>http://oraqa.com/2010/06/08/how-to-solve-the-anagrams-puzzle-in-sql/</link>
		<comments>http://oraqa.com/2010/06/08/how-to-solve-the-anagrams-puzzle-in-sql/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 15:41:28 +0000</pubDate>
		<dc:creator>Frank Zhou</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://oraqa.com/?p=521</guid>
		<description><![CDATA[The following is an interesting puzzle posted on the programming praxis website:
Anagrams
Words that are formed from the same set of letters are anagrams of each other. For instance, pots, post, stop, spot, opts, and tops are anagrams.
Your task is to write a program that, given a dictionary and an input word, prints all the anagrams [...]]]></description>
			<content:encoded><![CDATA[<p>The following is an interesting puzzle posted on the <a href="http://programmingpraxis.com/contents/">programming praxis </a>website:</p>
<p><a href="http://programmingpraxis.com/2009/04/10/anagrams/"><strong>Anagrams</strong></a><br />
Words that are formed from the same set of letters are anagrams of each other. For instance, pots, post, stop, spot, opts, and tops are anagrams.<br />
Your task is to write a program that, given a dictionary and an input word, prints all the anagrams of the input word.<br />
You are also to determine the largest anagram class in your dictionary. </p>
<p>The flat file &#8220;C:\oracle\word.txt&#8221; contains the following words :</p>
<p>pots<br />
post<br />
stop<br />
spot<br />
opts<br />
tops<br />
pares<br />
parse<br />
pears<br />
rapes<br />
reaps<br />
spare<br />
spear<br />
angor<br />
argon<br />
goran<br />
grano<br />
groan<br />
nagor<br />
orang<br />
organ<br />
rogan<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-SQL Solution&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<pre>

COLUMN largest_anagram_class FORMAT  A68
variable input_str varchar2(38)
exec :input_str:='tops'

create or replace directory tmp as 'C:\oracle'

CREATE  TABLE words (str VARCHAR2(38))
     ORGANIZATION EXTERNAL
     (
       TYPE ORACLE_LOADER
       DEFAULT DIRECTORY tmp
       ACCESS PARAMETERS
       (
         records delimited by newline
         fields terminated by whitespace
         missing field values are null
         ( str
         )
       )
       LOCATION ('word.txt')
     )
     REJECT LIMIT UNLIMITED;

--------------------------------------------------------------Find all the anagrams of the input word ---------------------------------------------------------

WITH DATA AS
(SELECT ordered_str, str,  COUNT(str) OVER (PARTITION BY ordered_str) as cnt
 FROM
 (SELECT DISTINCT REPLACE(LISTAGG(trim(column_value), ',') WITHIN GROUP (ORDER BY trim(column_value)) OVER (PARTITION BY str), ',') as ordered_str, str
  FROM words a,
  xmltable(rtrim(REGEXP_REPLACE(a.str,'(.)', '"\1",'), ','))
 )
),
INPUT AS (
SELECT DISTINCT REPLACE(LISTAGG(trim(column_value), ',') WITHIN GROUP (ORDER BY trim(column_value)) OVER (PARTITION BY str), ',') as ordered_input
  FROM (SELECT :input_str as str FROM dual) a,
  xmltable(rtrim(REGEXP_REPLACE(a.str,'(.)', '"\1",'), ','))
)
SELECT str, CASE WHEN ROWNUM = 1 THEN cnt END as cnt
FROM DATA
WHERE ordered_str IN
(SELECT ordered_input
FROM INPUT);

STR                                           CNT
-------------------------------------- ----------
tops                                            6
pots
opts
spot
post
stop

6 rows selected.

SQL&gt;

---------------------------------------------------Determine the largest anagram class in the dictionary---------------------------------------------------------

WITH DATA AS
(SELECT ordered_str, str,  COUNT(str) OVER (PARTITION BY ordered_str) as cnt
 FROM
 (SELECT DISTINCT REPLACE(LISTAGG(trim(column_value), ',') WITHIN GROUP (ORDER BY trim(column_value)) OVER (PARTITION BY str), ',') as ordered_str, str
  FROM words a,
  xmltable(rtrim(REGEXP_REPLACE(a.str,'(.)', '"\1",'), ','))
 )
)
SELECT  '[ '||anagrams||' ]' AS  largest_anagram_class,  max_ct
 FROM
 (SELECT DISTINCT LISTAGG(str, '-&gt;') WITHIN GROUP (ORDER BY str ) OVER (PARTITION BY ordered_str) AS anagrams, cnt, MAX(cnt) OVER() AS max_ct
  FROM DATA
 )
 WHERE max_ct = cnt;

LARGEST_ANAGRAM_CLASS                                                    MAX_CT
-------------------------------------------------------------------- ----------
[ angor-&gt;argon-&gt;goran-&gt;grano-&gt;groan-&gt;nagor-&gt;orang-&gt;organ-&gt;rogan ]             9

SQL&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://oraqa.com/2010/06/08/how-to-solve-the-anagrams-puzzle-in-sql/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Is it best to use SQL or PL/SQL?</title>
		<link>http://oraqa.com/2008/11/09/is-it-best-to-use-sql-or-plsql/</link>
		<comments>http://oraqa.com/2008/11/09/is-it-best-to-use-sql-or-plsql/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 06:11:40 +0000</pubDate>
		<dc:creator>Laurent Schneider</dc:creator>
				<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[plsql against sql]]></category>

		<guid isPermaLink="false">http://oraqa.com/?p=302</guid>
		<description><![CDATA[The issue is very often related to context switching. A context switch is when you write plsql code that contains sql statement, or sql that contains plsql functions.

select emp,dbms_random.value from emp;

implies a context switch

begin update emp set sal=0; end;

implies a context switch too.
However, it is sometimes better practice to have a few context switches rather [...]]]></description>
			<content:encoded><![CDATA[<p>The issue is very often related to context switching. A context switch is when you write plsql code that contains sql statement, or sql that contains plsql functions.</p>
<pre>
select emp,dbms_random.value from emp;
</pre>
<p>implies a context switch</p>
<pre>
begin update emp set sal=0; end;
</pre>
<p>implies a context switch too.</p>
<p>However, it is sometimes better practice to have a few context switches rather than a way too much complex SQL query, that nobody will ever be able to maintain but you.</p>
<p>Ok, let&#8217;s try to print the equation abc+def=ghi where abcdefghi are digits from 1 to 9 with no duplicate.</p>
<pre>
SQL&gt; create or replace function f return sys.odcivarchar2list pipelined deterministic is
  2    a7 number;
  3    a8 number;
  4    a9 number;
  5  begin
  6    -- How to solve the 3 Digits Plus 3 Digits Puzzle
  7    -- where a1a2a3 + a4a5a6 = a7a8a9 and each a is an unique digit from 1 to 9
  8    for a1 in 1..9 loop
  9      for a2 in 1..9 loop
 10        if a2 not in (a1) then
 11          for a3 in 1..9 loop
 12            if a3 not in (a1,a2)
 13            then
 14              for a4 in 1..9 loop
 15                if a4 not in (a1,a2,a3) and a1+a4&lt;10
 16                then
 17                  for a5 in 1..9 loop
 18                    if a5 not in (a1,a2,a3,a4) and a1*10+a2+a4*10+a5&lt;100
 19                    then
 20                      for a6 in 1..9 loop
 21                        if a6 not in (a1,a2,a3,a4,a5) and a1*100+a2*10+a3+a4*100+a5*10+a6&lt;1000
 22                        then
 23                          a9:=a3+a6;
 24                          a8:=trunc(a9/10);
 25                          a9:=a9-a8*10;
 26                          if a9 not in (a1,a2,a3,a4,a5,a6,0)
 27                          then
 28                            a8:=a8+a2+a5;
 29                            a7:=trunc(a8/10);
 30                            a8:=a8-a7*10;
 31                            if a8 not in (a1,a2,a3,a4,a5,a6,a9,0)
 32                            then
 33                              a7:=a7+a1+a4;
 34                              if a7 not in (a1,a2,a3,a4,a5,a6,a8,a9,0)
 35                              then
 36                                pipe row(a1||a2||a3||'+'||a4||a5||a6||'='||a7||a8||a9);
 37                              end if;
 38                            end if;
 39                          end if;
 40                        end if;
 41                      end loop;
 42                    end if;
 43                  end loop;
 44                end if;
 45              end loop;
 46            end if;
 47          end loop;
 48        end if;
 49      end loop;
 50    end loop;
 51  end;
 52  /

Function created.

SQL&gt;
SQL&gt; set timi on
SQL&gt; select column_value as Equation_str, decode(rownum,1,count(*) over()) cnt from table(f);
124+659=783                 336
125+739=864
...
784+152=936

336 rows selected.

Elapsed: 00:00:00.96
SQL&gt;
SQL&gt; SELECT num1||' + '||num2||' = '|| num3 as Equation_str,
  2         CASE WHEN lag(cnt) over (order by num1)  cnt
  3                OR lag(cnt) over (order by num1) IS NULL
  4       THEN  cnt END AS Counter
  5  FROM
  6  (SELECT num1, num2, num3, count(*) over ( ) as cnt
  7   FROM
  8   (SELECT substr(num,1,3) num1, substr(num,4,3) num2, substr(num,7,3) num3
  9    FROM
 10    (SELECT replace(sys_connect_by_path(n,','), ',') num
 11     FROM (SELECT LEVEL n FROM dual CONNECT BY LEVEL &lt;=9)
 12     WHERE LEVEL = 9
 13     CONNECT BY NOCYCLE PRIOR n != n
 14     AND LEVEL &lt;=9
 15     AND CASE LEVEL
 16              WHEN 1
 17              THEN CASE WHEN n &lt; 9 THEN 1 END
 18              WHEN 4
 19              THEN CASE WHEN n  + CONNECT_BY_ROOT(n) = 3 THEN 1 END
 23                        ELSE CASE WHEN n &gt;= CONNECT_BY_ROOT(n) + 1 THEN 1 END
 24                   END
 25             ELSE 1 END = 1
 26     )
 27    )
 28   WHERE to_number(num1)     + to_number(num2)       =  to_number(num3)
 29   );
124 + 659 = 783             336
125 + 739 = 864
...
784 + 152 = 936

336 rows selected.

Elapsed: 00:00:22.91
</pre>
<p>hmm, do not you just love <i>select * from table(f);</i> ? Just a sinister scheme to seduce you.</p>
]]></content:encoded>
			<wfw:commentRss>http://oraqa.com/2008/11/09/is-it-best-to-use-sql-or-plsql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Scan and Save Images into Oracle Database?</title>
		<link>http://oraqa.com/2008/08/03/scan-and-save-images/</link>
		<comments>http://oraqa.com/2008/08/03/scan-and-save-images/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 22:13:19 +0000</pubDate>
		<dc:creator>sunita</dc:creator>
				<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[Question]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://oraqa.com/?p=262</guid>
		<description><![CDATA[I have a requirement to scan and save a photograph through a program without user interaction in Oracle 10g. How can I do this job?
I m using TWAIN program but it throws a window error, and I am not able to save it in specific directory.
Plz reply.
Thanks &#38; Regards
Sunita
]]></description>
			<content:encoded><![CDATA[<p>I have a requirement to scan and save a photograph through a program without user interaction in Oracle 10g. How can I do this job?</p>
<p>I m using TWAIN program but it throws a window error, and I am not able to save it in specific directory.</p>
<p>Plz reply.</p>
<p>Thanks &amp; Regards</p>
<p>Sunita</p>
]]></content:encoded>
			<wfw:commentRss>http://oraqa.com/2008/08/03/scan-and-save-images/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How Do I Generate SQL?</title>
		<link>http://oraqa.com/2007/01/28/how-do-i-generate-sql/</link>
		<comments>http://oraqa.com/2007/01/28/how-do-i-generate-sql/#comments</comments>
		<pubDate>Mon, 29 Jan 2007 06:04:31 +0000</pubDate>
		<dc:creator>dm1959</dc:creator>
				<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[Question]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://oraqa.com/2007/01/28/how-do-i-generate-sql/</guid>
		<description><![CDATA[I want to do something simple and am learning..
I want to be able to create and format a file using plsql file..
example query:

select privilege,table_name,grantee from user_tab_privs
order by table_name, privilege;

5 rows of data
select, account,user1
select, account,user2
select, account,user3
insert, account, user1
insert, account,user2
update,account,user1
I would like to format it out such that it looks like this into a privs.sql file

GRANT select [...]]]></description>
			<content:encoded><![CDATA[<p>I want to do something simple and am learning..</p>
<p>I want to be able to create and format a file using plsql file..</p>
<p>example query:</p>
<pre>
select privilege,table_name,grantee from user_tab_privs
order by table_name, privilege;
</pre>
<p>5 rows of data</p>
<p>select, account,user1<br />
select, account,user2<br />
select, account,user3<br />
insert, account, user1<br />
insert, account,user2<br />
update,account,user1</p>
<p>I would like to format it out such that it looks like this into a privs.sql file</p>
<pre>
GRANT select on account to user1,user2,user3;
GRANT insert on account to user1, user2;
GRANT update on account to user1;
</pre>
<p>I have started the following but not sure who to build onto one line and loop it the best.</p>
<p>Thanks for newbie help&#8230;.:>) We all have to start somewhere.</p>
<pre>
spool User_table_privs.sql
set serveroutput on format wrap

-- Run this for the schema
DECLARE
--  Privileges cursor
    CURSOR privs_cur IS
	select privilege,table_name,grantee from user_tab_privs
	order by table_name, privilege;
BEGIN
DBMS_OUTPUT.ENABLE(1000000);
    FOR privs_rec IN privs_cur LOOP
        BEGIN
           dbms_output.put_line(
           'GRANT '|| privs_rec.privilege ||' '
                 || privs_rec.table_name || ' ' || privs_rec.grantee || ';');
           EXCEPTION
           WHEN others THEN
               dbms_output.put_line('Bummer (' || sqlerrm || ')' );

        END;

    END LOOP;

END;
/

spool off;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://oraqa.com/2007/01/28/how-do-i-generate-sql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to convert type to table?</title>
		<link>http://oraqa.com/2006/10/11/how-to-convert-type-to-table/</link>
		<comments>http://oraqa.com/2006/10/11/how-to-convert-type-to-table/#comments</comments>
		<pubDate>Wed, 11 Oct 2006 18:51:07 +0000</pubDate>
		<dc:creator>plasma</dc:creator>
				<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[Question]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://oraqa.com/2006/10/11/how-to-convert-type-to-table/</guid>
		<description><![CDATA[
CREATE OR REPLACE TYPE mytype AS OBJECT (
   field_1   VARCHAR2 (256),
   field_2   VARCHAR2 (256),
   field_3   VARCHAR2 (256),
   field_4   VARCHAR2 (256),
   field_5   VARCHAR2 (256)
)
FINAL;
/

CREATE OR REPLACE TYPE myarray IS TABLE OF mytype;
/

DECLARE
   la_myarray  [...]]]></description>
			<content:encoded><![CDATA[<pre>
CREATE OR REPLACE TYPE mytype AS OBJECT (
   field_1   VARCHAR2 (256),
   field_2   VARCHAR2 (256),
   field_3   VARCHAR2 (256),
   field_4   VARCHAR2 (256),
   field_5   VARCHAR2 (256)
)
FINAL;
/

CREATE OR REPLACE TYPE myarray IS TABLE OF mytype;
/

DECLARE
   la_myarray          myarray        := myarray ();
   lvc_search_string   VARCHAR2 (512);
BEGIN
   FOR ln_i IN 1 .. 10
   LOOP
      la_myarray.EXTEND;
      la_myarray (la_myarray.LAST) :=
         mytype ('a' || ln_i,
                 'b' || ln_i,
                 'c' || ln_i,
                 'd' || ln_i,
                 'e' || ln_i
                );
   END LOOP;

   SELECT   a.field_2
       INTO lvc_search_string
       FROM la_myarray a
      WHERE a.field_3 LIKE '%7'
   ORDER BY a.field_5;
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line (SQLERRM);
END;
</pre>
<p><strong>How can I select from my array? is this possible?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://oraqa.com/2006/10/11/how-to-convert-type-to-table/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to get business days between two dates?</title>
		<link>http://oraqa.com/2006/08/28/how-to-get-business-days-between-two-dates/</link>
		<comments>http://oraqa.com/2006/08/28/how-to-get-business-days-between-two-dates/#comments</comments>
		<pubDate>Mon, 28 Aug 2006 17:31:58 +0000</pubDate>
		<dc:creator>madan30</dc:creator>
				<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[Question]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://oraqa.com/2006/08/28/how-to-get-business-days-between-two-dates/</guid>
		<description><![CDATA[There are two given dates and I have to find out the working days between two dates&#160; i.e. excluding Sundays and Saturdays. Please help. Thank you.
]]></description>
			<content:encoded><![CDATA[<p>There are two given dates and I have to find out the working days between two dates&nbsp; i.e. excluding Sundays and Saturdays. Please help. Thank you.</p>
]]></content:encoded>
			<wfw:commentRss>http://oraqa.com/2006/08/28/how-to-get-business-days-between-two-dates/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is there a limit on the number of triggers a table can have?</title>
		<link>http://oraqa.com/2006/07/24/is-there-a-limit-on-the-number-of-triggers-a-table-can-have/</link>
		<comments>http://oraqa.com/2006/07/24/is-there-a-limit-on-the-number-of-triggers-a-table-can-have/#comments</comments>
		<pubDate>Mon, 24 Jul 2006 13:56:38 +0000</pubDate>
		<dc:creator>Eddie Awad</dc:creator>
				<category><![CDATA[PL/SQL]]></category>

		<guid isPermaLink="false">http://oraqa.com/2006/07/24/is-there-a-limit-on-the-number-of-triggers-a-table-can-have/</guid>
		<description><![CDATA[There is virtually no limit. However, the more triggers you have on a table, the more time it takes to execute DML and DDL statements on that table.
Resources:

AskTom
Documentation

]]></description>
			<content:encoded><![CDATA[<p>There is virtually no limit. However, the more triggers you have on a table, the more time it takes to execute DML and DDL statements on that table.</p>
<h3>Resources:</h3>
<ul>
<li><a href="http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:436419805666 ">AskTom</a></li>
<li><a href="http://download-west.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm">Documentation</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oraqa.com/2006/07/24/is-there-a-limit-on-the-number-of-triggers-a-table-can-have/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Generate XML Data from the Database</title>
		<link>http://oraqa.com/2006/04/27/how-to-generate-xml-data-from-the-database/</link>
		<comments>http://oraqa.com/2006/04/27/how-to-generate-xml-data-from-the-database/#comments</comments>
		<pubDate>Thu, 27 Apr 2006 20:01:16 +0000</pubDate>
		<dc:creator>Eddie Awad</dc:creator>
				<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://oraqa.com/2006/04/27/how-to-generate-xml-data-from-the-database/</guid>
		<description><![CDATA[You can  generate XML from the database using: 

  Standard SQL/XML Functions:

XMLELEMENT
XMLATTRIBUTES
XMLFOREST
XMLCONCAT
XMLAGG
XMLPI
XMLCOMMENT
XMLROOT
XMLSERIALIZE
XMLPARSE
            


  Oracle Database SQL Functions:

XMLSEQUENCE
XMLCOLATTVAL
XMLCDATA
            
SYS_XMLGEN
 SYS_XMLAGG
            [...]]]></description>
			<content:encoded><![CDATA[<p>You can  generate XML from the database using: </p>
<ul>
<li>  Standard SQL/XML Functions:
<ul>
<li>XMLELEMENT</li>
<li>XMLATTRIBUTES</li>
<li>XMLFOREST</li>
<li>XMLCONCAT</li>
<li>XMLAGG</li>
<li>XMLPI</li>
<li>XMLCOMMENT</li>
<li>XMLROOT</li>
<li>XMLSERIALIZE</li>
<li>XMLPARSE
            </li>
</ul>
</li>
<li>  Oracle Database SQL Functions:
<ul>
<li>XMLSEQUENCE</li>
<li>XMLCOLATTVAL</li>
<li>XMLCDATA
            </li>
<li>SYS_XMLGEN</li>
<li> SYS_XMLAGG
            </li>
</ul>
</li>
<li>DBMS_XMLGEN</li>
<li> XSQL Pages Publishing Framework</li>
<li> XML SQL Utility (XSU)</li>
<li>DBURIType</li>
</ul>
<p>Some of the options above may not be available in versions of the Oracle database earlier than 10g Release 2 (10.2).</p>
<p>For more details on each of the above options check out:</p>
<ul>
<li><a href="http://download-west.oracle.com/docs/cd/B19306_01/appdev.102/b14259/xdb13gen.htm">Oracle XML DB Developer&#8217;s Guide 10g Release 2 (10.2) &#8211; Chapter 16</a> </li>
<li><a href="http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96620/xdb12gen.htm">Oracle9i XML Database Developer&#8217;s Guide &#8211; Oracle XML DB Release 2 (9.2) &#8211; Chapter 10</a></li>
</ul>
<p>Related links:</p>
<ul>
<li><a href="http://awads.net/wp/2005/12/19/producing-xml-from-sql-using-cursor-expressions/">Producing XML from SQL using cursor expressions</a></li>
<li><a href="http://blogs.ittoolbox.com/oracle/guide/archives/004410.asp">XML in the Database: A Brief Overview</a> </li>
<li><a href="http://blogs.ittoolbox.com/oracle/guide/archives/008716.asp">Get the XML out of your database</a></li>
<li><a href="http://blogs.ittoolbox.com/oracle/guide/archives/006917.asp">XE, XML and WebDAV &#8211; Access your XML data in Oracle XE</a></li>
<li><a href="http://blogs.ittoolbox.com/oracle/guide/archives/006547.asp">XML and OO in Oracle, A Scenario</a></li>
</ul>
<p>If you have any additional XML resources, please add them in the comments below. </p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://oraqa.com/2006/04/27/how-to-generate-xml-data-from-the-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can I dynamically generate PDF documents from data stored in an Oracle database?</title>
		<link>http://oraqa.com/2006/04/06/can-i-dynamically-generate-pdf-documents-from-data-stored-in-an-oracle-database/</link>
		<comments>http://oraqa.com/2006/04/06/can-i-dynamically-generate-pdf-documents-from-data-stored-in-an-oracle-database/#comments</comments>
		<pubDate>Thu, 06 Apr 2006 18:47:35 +0000</pubDate>
		<dc:creator>Eddie Awad</dc:creator>
				<category><![CDATA[PL/SQL]]></category>

		<guid isPermaLink="false">http://oraqa.com/2006/04/06/can-i-dynamically-generate-pdf-documents-from-data-stored-in-an-oracle-database/</guid>
		<description><![CDATA[Yes. Check out plpdf.com:

PL/SQL + PDF = PL/PDF
PL/PDF is written exclusively in PL/SQL. It is able to either store the generated PDF document in the database or provide the results directly to a browser using MOD_PLSQL. No third-party software is needed; PL/PDF only uses tools provided by the installation package of an Oracle Database (PL/SQL, [...]]]></description>
			<content:encoded><![CDATA[<p>Yes. Check out <a href="http://plpdf.com/">plpdf.com</a>:</p>
<blockquote><p>
PL/SQL + PDF = PL/PDF</p>
<p>PL/PDF is written exclusively in PL/SQL. It is able to either store the generated PDF document in the database or provide the results directly to a browser using MOD_PLSQL. No third-party software is needed; PL/PDF only uses tools provided by the installation package of an Oracle Database (PL/SQL, MOD_PLSQL).
</p></blockquote>
<p><a href="http://feuerthoughts.blogspot.com/2006/04/plsql-pdf-plpdf-pdf-docs-from-plsql.html">via</a></p>
]]></content:encoded>
			<wfw:commentRss>http://oraqa.com/2006/04/06/can-i-dynamically-generate-pdf-documents-from-data-stored-in-an-oracle-database/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to encode a BLOB to base64?</title>
		<link>http://oraqa.com/2006/03/21/how-to-encode-a-blob-to-base64/</link>
		<comments>http://oraqa.com/2006/03/21/how-to-encode-a-blob-to-base64/#comments</comments>
		<pubDate>Tue, 21 Mar 2006 17:59:34 +0000</pubDate>
		<dc:creator>mark.hayen</dc:creator>
				<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[Question]]></category>

		<guid isPermaLink="false">http://oraqa.com/2006/03/21/how-to-encode-a-blob-to-base64/</guid>
		<description><![CDATA[How to encode a blob stored in the database to base64?
]]></description>
			<content:encoded><![CDATA[<p>How to encode a blob stored in the database to base64?</p>
]]></content:encoded>
			<wfw:commentRss>http://oraqa.com/2006/03/21/how-to-encode-a-blob-to-base64/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
