<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1108309683235161870</id><updated>2012-02-16T10:59:31.918-08:00</updated><category term='plsql tokenizer oracle 10g regexp regexp_substr regexp_instr function anup pani anuppani'/><category term='Hacking oracle outer join IN'/><title type='text'>Tools you can use</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://anuppani.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1108309683235161870/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://anuppani.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anup</name><uri>http://www.blogger.com/profile/04779619649574015962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1108309683235161870.post-5207379508747093152</id><published>2009-09-23T14:23:00.000-07:00</published><updated>2009-09-23T18:06:15.050-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hacking oracle outer join IN'/><title type='text'>Hacking Oracle Outer Join</title><content type='html'>My friend wanted to use IN command to check the value from a table used in an outer join but Oracle does not allow the usage of IN command for tables connected by outer join. I used regular expressions to overcome this.&lt;br /&gt;Here is an example below with 2 tables (Main and Sometime):&lt;br /&gt;&lt;br /&gt;a. Table Main with 1 column 'ID'&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ID&lt;/span&gt;&lt;br /&gt;10&lt;br /&gt;20&lt;br /&gt;30&lt;br /&gt;&lt;br /&gt;b. Table Sometime with 2 columns, ID and Status&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ID STATUS&lt;/span&gt;&lt;br /&gt;20 ALIVE&lt;br /&gt;10 DEAD&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT m.id , s.status&lt;br /&gt;  FROM main m, sometime s&lt;br /&gt; WHERE m.id = s.id (+)&lt;br /&gt;   AND REGEXP_LIKE (s.status(+), 'ALIVE|DEAD');&lt;br /&gt;&lt;br /&gt;The SQL query above would return the following result:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ID STATUS&lt;/span&gt;&lt;br /&gt;20 ALIVE&lt;br /&gt;10 DEAD&lt;br /&gt;30&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1108309683235161870-5207379508747093152?l=anuppani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuppani.blogspot.com/feeds/5207379508747093152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1108309683235161870&amp;postID=5207379508747093152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1108309683235161870/posts/default/5207379508747093152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1108309683235161870/posts/default/5207379508747093152'/><link rel='alternate' type='text/html' href='http://anuppani.blogspot.com/2009/09/hacking-oracle-outer-join.html' title='Hacking Oracle Outer Join'/><author><name>Anup</name><uri>http://www.blogger.com/profile/04779619649574015962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1108309683235161870.post-845337271645195887</id><published>2008-09-24T20:25:00.001-07:00</published><updated>2008-09-24T20:25:55.121-07:00</updated><title type='text'>Regular expression for phone number formatting</title><content type='html'>SELECT REGEXP_REPLACE(&lt;br /&gt;          SUBSTR(&lt;br /&gt;             REGEXP_REPLACE (&lt;br /&gt;                '1-571 426-8102'  -- sample phone number&lt;br /&gt;               ,'[- ]'            -- take out hyphen and spaces&lt;br /&gt;               ),-10              -- read the last 10 numbers&lt;br /&gt;             )&lt;br /&gt;          ,'([0-9]{3})([0-9]{3})([0-9]{4})'&lt;br /&gt;          ,'\1-\2-\3'             -- arrange in format xxx-xxx-xxxx&lt;br /&gt;          ) phone&lt;br /&gt;FROM dual;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1108309683235161870-845337271645195887?l=anuppani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuppani.blogspot.com/feeds/845337271645195887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1108309683235161870&amp;postID=845337271645195887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1108309683235161870/posts/default/845337271645195887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1108309683235161870/posts/default/845337271645195887'/><link rel='alternate' type='text/html' href='http://anuppani.blogspot.com/2008/09/regular-expression-for-phone-number.html' title='Regular expression for phone number formatting'/><author><name>Anup</name><uri>http://www.blogger.com/profile/04779619649574015962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1108309683235161870.post-1429009792094833663</id><published>2007-07-25T06:58:00.000-07:00</published><updated>2007-07-25T07:12:30.266-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plsql tokenizer oracle 10g regexp regexp_substr regexp_instr function anup pani anuppani'/><title type='text'>Tokenizer in Oracle PLSQL</title><content type='html'>&lt;span style="color: rgb(153, 0, 0);"&gt;I created a tokenizer for Oracle PL/SQL using the Oracle 10g regexp functions:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;To test this,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;1. first compile the function below:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;create or replace FUNCTION Tokenizer &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;(p_string VARCHAR2&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;,p_separators in VARCHAR2)&lt;br /&gt;RETURN dbms_sql.varchar2s IS&lt;br /&gt;&amp;nbsp; &amp;nbsp;l_token_tbl dbms_sql.varchar2s;&lt;br /&gt;&amp;nbsp; &amp;nbsp;pattern varchar2(250);&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;pattern := '[^(' || p_separators || ')]+' ;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;select regexp_substr(p_string, pattern,1,level) token&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;bulk collect into l_token_tbl&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;from dual&lt;br /&gt;&amp;nbsp; &amp;nbsp; where regexp_substr(p_string, pattern,1,level) is not null&lt;br /&gt;&amp;nbsp; &amp;nbsp; connect by regexp_instr(p_string, pattern,1, level ) &gt; 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;RETURN l_token_tbl;&lt;br /&gt;END Tokenizer;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;2. Then call it using,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Declare&lt;br /&gt;&amp;nbsp; &amp;nbsp;l_token_tbl dbms_sql.varchar2s; &lt;span style="color: rgb(0, 153, 0);"&gt;-- &lt;span style="font-style:italic;"&gt;table of varchar2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; &amp;nbsp;l_token_tbl := Tokenizer(&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;'anup.pani @somewhere.com ',&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;' .@' );&lt;br /&gt;&amp;nbsp; &amp;nbsp;FOR i IN l_token_tbl.FIRST..l_token_tbl.LAST LOOP&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;dbms_output.put_line(l_token_tbl(i));&lt;br /&gt;&amp;nbsp; &amp;nbsp;END LOOP;&lt;br /&gt;end;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;3. Result&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;anup&lt;br /&gt;pani&lt;br /&gt;somewhere&lt;br /&gt;com&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;Hope you find this useful. Let me know your comments or email me in anuppani@gmail.com&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1108309683235161870-1429009792094833663?l=anuppani.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuppani.blogspot.com/feeds/1429009792094833663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1108309683235161870&amp;postID=1429009792094833663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1108309683235161870/posts/default/1429009792094833663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1108309683235161870/posts/default/1429009792094833663'/><link rel='alternate' type='text/html' href='http://anuppani.blogspot.com/2007/07/tokenizer-in-oracle-plsql.html' title='Tokenizer in Oracle PLSQL'/><author><name>Anup</name><uri>http://www.blogger.com/profile/04779619649574015962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
