<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4858330053626945741</atom:id><lastBuildDate>Mon, 18 Nov 2024 22:24:58 +0000</lastBuildDate><category>Email validation</category><category>VBScript Regular expression</category><title>One step ahead</title><description>Never give up...There is always a very thin line between Success and Failure.</description><link>http://techgigsonline.blogspot.com/</link><managingEditor>noreply@blogger.com (Subhroneel)</managingEditor><generator>Blogger</generator><openSearch:totalResults>212</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-1877515071094710492</guid><pubDate>Sat, 23 Mar 2024 12:45:00 +0000</pubDate><atom:updated>2024-03-23T05:45:26.640-07:00</atom:updated><title>SMB file sharing between Mac OS Catalina to Ubuntu Mantic 23.10</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/-9flUGJ54Ko&quot; width=&quot;536&quot; youtube-src-id=&quot;-9flUGJ54Ko&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;</description><link>http://techgigsonline.blogspot.com/2024/03/smb-file-sharing-between-mac-os.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/-9flUGJ54Ko/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-4015853317975568599</guid><pubDate>Sat, 04 Nov 2023 16:56:00 +0000</pubDate><atom:updated>2023-11-04T09:58:08.917-07:00</atom:updated><title>Connect to SQL Server Database 2019 using Oracle SQL Developer</title><description>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;364&quot; src=&quot;https://www.youtube.com/embed/Yu_NVNNWK_8&quot; width=&quot;593&quot; youtube-src-id=&quot;Yu_NVNNWK_8&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;</description><link>http://techgigsonline.blogspot.com/2023/11/connect-to-sql-server-database-2019.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/Yu_NVNNWK_8/default.jpg" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Kolkata, West Bengal, India</georss:featurename><georss:point>22.572646 88.363895000000014</georss:point><georss:box>-5.7375878361788466 53.207645000000014 50.882879836178844 123.52014500000001</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-8060568392048720532</guid><pubDate>Sat, 04 Nov 2023 16:56:00 +0000</pubDate><atom:updated>2023-11-04T09:56:01.623-07:00</atom:updated><title>Migrate Data from SQL Server Database 2019 to Oracle Database 21c using Oracle SQL Developer</title><description>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;350&quot; src=&quot;https://www.youtube.com/embed/bHphkduvc-Q&quot; width=&quot;678&quot; youtube-src-id=&quot;bHphkduvc-Q&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;</description><link>http://techgigsonline.blogspot.com/2023/11/migrate-data-from-sql-server-database.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/bHphkduvc-Q/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-3975304267567795639</guid><pubDate>Sat, 04 Nov 2023 16:54:00 +0000</pubDate><atom:updated>2023-11-04T09:54:46.401-07:00</atom:updated><title>FTP file sharing from Mac OS Catalina to Ubuntu 22.04</title><description>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;421&quot; src=&quot;https://www.youtube.com/embed/3pCCIcu8Q3A&quot; width=&quot;669&quot; youtube-src-id=&quot;3pCCIcu8Q3A&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;</description><link>http://techgigsonline.blogspot.com/2023/11/ftp-file-sharing-from-mac-os-catalina.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/3pCCIcu8Q3A/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-1329283832792080284</guid><pubDate>Sat, 04 Nov 2023 16:53:00 +0000</pubDate><atom:updated>2023-11-04T09:53:36.736-07:00</atom:updated><title>Install MacOS Catalina 10.5 On Virtual box 6 1 Ubuntu 22 04</title><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;407&quot; src=&quot;https://www.youtube.com/embed/k7LET3k2y0E&quot; width=&quot;686&quot; youtube-src-id=&quot;k7LET3k2y0E&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://techgigsonline.blogspot.com/2023/11/install-macos-catalina-105-on-virtual.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/k7LET3k2y0E/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-4629656724740390363</guid><pubDate>Mon, 28 Nov 2022 11:32:00 +0000</pubDate><atom:updated>2022-11-28T03:32:55.599-08:00</atom:updated><title>Using Oracle DML Database Trigger For Auditing Purpose</title><description>&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&amp;nbsp;Auditing Table means keeping monitoring of all the dml activities 
occurred on a specific table of the database like Insert, Update or 
Delete single row  row at a time from the table and when. It is like 
tracking the users activity who are messing with your data.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;   
Monitoring user activity for missing, manipulating records is important 
part for a business. In this video I tried to show how to use trigger on
 a table to get information about the client machine, ip address etc. 
All this information will be stored in a table which can be used in 
presentation to analyses any manipulated data.&lt;br /&gt;Please download the following script from the below link&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://drive.google.com/file/d/1fH79eeLUd-Xcz42qSjsAfK8wYfgtE1y9/view?usp=sharing&quot;&gt;https://drive.google.com/file/d/1fH79eeLUd-Xcz42qSjsAfK8wYfgtE1y9/view?usp=sharing&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;BLOG_video_class&quot; height=&quot;390&quot; src=&quot;https://www.youtube.com/embed/XPuxe0giSOE&quot; width=&quot;468&quot; youtube-src-id=&quot;XPuxe0giSOE&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;</description><link>http://techgigsonline.blogspot.com/2022/11/using-oracle-dml-database-trigger-for.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/XPuxe0giSOE/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-2934619658987163118</guid><pubDate>Tue, 14 Jan 2020 10:44:00 +0000</pubDate><atom:updated>2020-01-14T02:44:45.723-08:00</atom:updated><title>Extract data from all tables of all schema into csv file using UTL_DIR</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I was working on a metadata comparison project using UTL_DIR to write to file on&amp;nbsp; database server As having&amp;nbsp; knowledge on data dictionary I have manipulated dba_* tables to get information and extract it to csv files. I am providing below the list of database metadata object I used to get the information.&lt;br /&gt;
&lt;br /&gt;
1.&amp;nbsp;&amp;nbsp; DBA_USERS&lt;br /&gt;
2.&amp;nbsp;&amp;nbsp; DBA_TABLES&lt;br /&gt;
3.&amp;nbsp;&amp;nbsp; DBA_TAB_PRIVS&lt;br /&gt;
4.&amp;nbsp;&amp;nbsp; DBA_ROLE_PRIVS&lt;br /&gt;
5.&amp;nbsp;&amp;nbsp; DBA_TAB_COLUMNS&lt;br /&gt;
6.&amp;nbsp;&amp;nbsp; DBA_INDEXES&lt;br /&gt;
7.&amp;nbsp;&amp;nbsp; DBA_PART_TABLES&lt;br /&gt;
8.&amp;nbsp;&amp;nbsp; DBA_VIEWS&lt;br /&gt;
9.&amp;nbsp;&amp;nbsp; DBA_MVIEWS&lt;br /&gt;
10. DBA_SOURCE&lt;br /&gt;
11. DBA_SEQUENCES&lt;br /&gt;
12. DBA_SYNONYMS&lt;br /&gt;
13. DBA_LOBS&lt;br /&gt;
14. DBA_SCHEDULER_JOBS&lt;br /&gt;
&lt;br /&gt;
For UTL_FILE there are 2 output handler, one for extracting the metadata and another to log the activity.&lt;br /&gt;
&lt;br /&gt;
This extractor will extract all schema objects metadata which is ORACLE_MAINTAINED=&#39;N&#39; (Applicable in 12c only).&lt;br /&gt;
&lt;br /&gt;
The script in given below&amp;nbsp; This script will run on any Oracle 12c environment logged in as SYSTEM or SYS users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: cyan;&quot;&gt;set serveroutput on;&lt;br /&gt;declare&lt;br /&gt;refcur_cur SYS_REFCURSOR;&lt;br /&gt;type view_record_name_t is RECORD &lt;br /&gt;(&lt;br /&gt;OWNER dba_VIEWS.OWNER%type,&lt;br /&gt;VIEW_NAME dba_VIEWS.VIEW_NAME%type,&lt;br /&gt;TEXT_LENGTH dba_VIEWS.TEXT_LENGTH%type&lt;br /&gt;);&lt;br /&gt;all_users_record_name dba_users%rowtype;&lt;br /&gt;view_record_name view_record_name_t;&lt;br /&gt;table_record_name dba_tables%rowtype;&lt;br /&gt;--column_record_name column_record_name_t;&lt;br /&gt;column_record_name dba_tab_columns%rowtype;&lt;br /&gt;index_record_name dba_indexes%rowtype;&lt;br /&gt;partition_record_name dba_part_tables%rowtype;&lt;br /&gt;mview_record_name dba_mviews%rowtype;&lt;br /&gt;source_record_name dba_source%rowtype;&lt;br /&gt;sequence_record_name dba_sequences%rowtype;&lt;br /&gt;synonym_record_name dba_synonyms%rowtype;&lt;br /&gt;lobs_record_name dba_lobs%rowtype;&lt;br /&gt;jobs_record_name dba_scheduler_jobs%rowtype;&lt;br /&gt;tab_privs_record_name dba_tab_privs%rowtype;&lt;br /&gt;role_privs_record_name dba_role_privs%rowtype;&lt;br /&gt;users_record_name dba_users%rowtype;&lt;br /&gt;fhandle UTL_FILE.FILE_TYPE;&lt;br /&gt;fhandle_err UTL_FILE.FILE_TYPE;&lt;br /&gt;uname user_users.username%type;&lt;br /&gt;systimes varchar2(15);&lt;br /&gt;rowconut number;&lt;br /&gt;serverHostName varchar2(100);&lt;br /&gt;serverInstanceName varchar2(100);&lt;br /&gt;begin&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp;select max(username) into uname from user_users;&lt;br /&gt;&amp;nbsp;EXCEPTION&lt;br /&gt;&amp;nbsp;when OTHERS then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uname := &#39;dummy&#39;;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;serverHostName:= sys_context(&#39;userenv&#39;,&#39;server_host&#39;);&lt;br /&gt;serverInstanceName:= sys_context(&#39;userenv&#39;,&#39;instance_name&#39;) ;&lt;br /&gt;&lt;br /&gt;fhandle_err := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_InfoAndErrors_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.log&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;, -- Open mode: w = write.&lt;br /&gt;max_linesize =&amp;gt; 32767 );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_users_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;, -- Open mode: w = write.&lt;br /&gt;max_linesize =&amp;gt; 32767 );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;open refcur_cur for select *&amp;nbsp; FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39; order by USERNAME;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting users from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;USERNAME~USER_ID~ACCOUNT_STATUS~LOCK_DATE~EXPIRY_DATE&#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into users_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,users_record_name.USERNAME||&#39;~&#39;||users_record_name.USER_ID||&#39;~&#39;||users_record_name.ACCOUNT_STATUS||&#39;~&#39;||users_record_name.LOCK_DATE||&#39;~&#39;||users_record_name.EXPIRY_DATE);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting users from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&lt;br /&gt;fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_tab_privs_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;, -- Open mode: w = write.&lt;br /&gt;max_linesize =&amp;gt; 32767 );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;open refcur_cur for select * from dba_tab_privs where GRANTEE in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by 1,2,3,5;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting table_privs from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;GRANTEE~OWNER~TABLE_NAME~GRANTOR~PRIVILEGE~GRANTABLE~HIERARCHY&#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into tab_privs_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,tab_privs_record_name.GRANTEE||&#39;~&#39;||tab_privs_record_name.OWNER||&#39;~&#39;||tab_privs_record_name.TABLE_NAME||&#39;~&#39;||tab_privs_record_name.GRANTOR||&#39;~&#39;||tab_privs_record_name.PRIVILEGE||&#39;~&#39;||tab_privs_record_name.GRANTABLE||&#39;~&#39;||tab_privs_record_name.HIERARCHY);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting table_privs from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_role_privs_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;, -- Open mode: w = write.&lt;br /&gt;max_linesize =&amp;gt; 32767 );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;open refcur_cur for select * from dba_role_privs where GRANTEE in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by 1,2,3,4;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting role_privs from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;GRANTEE~GRANTED_ROLE~ADMIN_OPTION~DEFAULT_ROLE&#39;&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; ) ;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into role_privs_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,role_privs_record_name.GRANTEE||&#39;~&#39;||role_privs_record_name.GRANTED_ROLE||&#39;~&#39;||role_privs_record_name.ADMIN_OPTION||&#39;~&#39;||role_privs_record_name.DEFAULT_ROLE);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting role_privs from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&lt;br /&gt;fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_tables_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;, -- Open mode: w = write.&lt;br /&gt;max_linesize =&amp;gt; 32767 );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;open refcur_cur for select * from dba_tables where owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by 1;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting tables....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;OWNER~TABLE_NAME~TABLESPACE_NAME~STATUS~NUM_ROWS&#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into table_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; begin&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; execute immediate &#39;select count(*) from &#39;||table_record_name.OWNER||&#39;.&#39;||table_record_name.TABLE_NAME into rowconut;&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; EXCEPTION&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; when others then&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; rowconut:=0;&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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,table_record_name.OWNER||&#39;~&#39;||table_record_name.TABLE_NAME||&#39;~&#39;||table_record_name.TABLESPACE_NAME||&#39;~&#39;||table_record_name.STATUS||&#39;~&#39;||rowconut);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting tables from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&lt;br /&gt;fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_tab_columns_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;, -- Open mode: w = write.&lt;br /&gt;max_linesize =&amp;gt; 32767 );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;--nvl(OWNER,&#39; &#39;) OWNER,nvl(TABLE_NAME,&#39; &#39;) TABLE_NAME,nvl(COLUMN_NAME,&#39; &#39;) COLUMN_NAME,nvl(DATA_TYPE,&#39; &#39;) DATA_TYPE,nvl(DATA_LENGTH,0) DATA_LENGTH,nvl(DATA_PRECISION,0) DATA_PRECISION,nvl(DATA_SCALE,0) DATA_SCALE,nvl(NULLABLE,&#39; &#39;) NULLABLE,nvl(COLUMN_ID,0) COLUMN_ID&lt;br /&gt;open refcur_cur for select * from dba_tab_columns where owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by table_name,column_id;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting columns....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;OWNER~TABLE_NAME~COLUMN_NAME~DATA_TYPE~DATA_LENGTH~DATA_PRECISION~DATA_SCALE~NULLABLE~COLUMN_ID&#39;&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; );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into column_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,column_record_name.OWNER||&#39;~&#39;||column_record_name.TABLE_NAME||&#39;~&#39;||column_record_name.COLUMN_NAME||&#39;~&#39;||column_record_name.DATA_TYPE||&#39;~&#39;||column_record_name.DATA_LENGTH||&#39;~&#39;||column_record_name.DATA_PRECISION||&#39;~&#39;||column_record_name.DATA_SCALE||&#39;~&#39;||column_record_name.NULLABLE||&#39;~&#39;||column_record_name.COLUMN_ID);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting columns from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;--elsif i.object_type=&#39;INDEX&#39; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_indexes_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;,&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; max_linesize =&amp;gt; 32767 -- Open mode: w = write.&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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; open refcur_cur for &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select * from dba_indexes where owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by TABLE_NAME,INDEX_NAME;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting indexes....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;OWNER~INDEX_NAME~INDEX_TYPE~TABLE_OWNER~TABLE_NAME~TABLE_TYPE~UNIQUENESS~COMPRESSION~TABLESPACE_NAME~DISTINCT_KEYS~STATUS~NUM_ROWS&#39;&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; );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into index_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; index_record_name.OWNER||&#39;~&#39;||index_record_name.INDEX_NAME||&#39;~&#39;||index_record_name.INDEX_TYPE||&#39;~&#39;||index_record_name.TABLE_OWNER||&#39;~&#39;||index_record_name.TABLE_NAME||&#39;~&#39;||index_record_name.TABLE_TYPE||&#39;~&#39;||index_record_name.UNIQUENESS||&#39;~&#39;||index_record_name.COMPRESSION||&#39;~&#39;||index_record_name.TABLESPACE_NAME||&#39;~&#39;||index_record_name.DISTINCT_KEYS||&#39;~&#39;||index_record_name.STATUS||&#39;~&#39;||index_record_name.NUM_ROWS);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting indexes from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --elsif i.object_type=&#39;TABLE PARTITION&#39; then&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_table_partitions_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;, -- Open mode: w = write.&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; max_linesize =&amp;gt; 32767);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; open refcur_cur for &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select * from dba_part_tables where owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by 1;&lt;br /&gt;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting partitions from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;OWNER~TABLE_NAME~PARTITIONING_TYPE~SUBPARTITIONING_TYPE~PARTITION_COUNT~PARTITIONING_KEY_COUNT~STATUS~DEF_TABLESPACE_NAME&#39;&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; );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into partition_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,partition_record_name.OWNER||&#39;~&#39;||partition_record_name.TABLE_NAME||&#39;~&#39;||partition_record_name.SUBPARTITIONING_TYPE||&#39;~&#39;||partition_record_name.PARTITION_COUNT||&#39;~&#39;||partition_record_name.PARTITIONING_KEY_COUNT||&#39;~&#39;||partition_record_name.STATUS||&#39;~&#39;||partition_record_name.DEF_TABLESPACE_NAME);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting partitions from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --elsif i.object_type=&#39;VIEW&#39; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_views_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;, -- Open mode: w = write.&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; max_linesize =&amp;gt; 32767);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; open&amp;nbsp; refcur_cur for &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select nvl(OWNER,&#39; &#39;) OWNER,nvl(VIEW_NAME,&#39; &#39;) VIEW_NAME,nvl(TEXT_LENGTH,0) TEXT_LENGTH from dba_views&amp;nbsp; where owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by view_name;&lt;br /&gt;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting views from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;OWNER~VIEW_NAME~TEXT_LENGTH&#39;);--,TEXT&#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&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; fetch refcur_cur into view_record_name;&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; utl_file.put_line(fhandle,view_record_name.OWNER||&#39;~&#39;||view_record_name.VIEW_NAME||&#39;~&#39;||view_record_name.TEXT_LENGTH);--||&#39;~&#39;||view_record_name.TEXT);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &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; EXCEPTION&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; when OTHERS then&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; exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; END;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Open mode: w = write.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting views from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --elsif i.object_type=&#39;MATERIALIZED VIEW&#39; then&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_mviews_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;, -- Open mode: w = write.&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; max_linesize =&amp;gt; 32767);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; open refcur_cur for &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select * from dba_mviews where owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by 2;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting mviews from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;OWNER~MVIEW_NAME~CONTAINER_NAME~QUERY~QUERY_LEN&#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into mview_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle, mview_record_name.OWNER||&#39;~&#39;||mview_record_name.MVIEW_NAME||&#39;~&#39;||mview_record_name.CONTAINER_NAME||&#39;~&#39;||mview_record_name.QUERY||&#39;~&#39;||mview_record_name.QUERY_LEN);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting mviews from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp; elsif (i.object_type=&#39;FUNCTION&#39;&amp;nbsp; or i.object_type=&#39;TYPE&#39; or i.object_type=&#39;PACKAGE BODY&#39; or i.object_type=&#39;PACKAGE&#39; or i.object_type=&#39;TRIGGER&#39;) then&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_types_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;,&amp;nbsp; -- Open mode: w = write.&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; max_linesize =&amp;gt; 32767);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; open refcur_cur for &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select * from dba_source where owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by TYPE,NAME,LINE;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting types from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;OWNER~NAME~TYPE~LINE~TEXT&#39;&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; );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into source_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,source_record_name.OWNER||&#39;~&#39;||source_record_name.NAME||&#39;~&#39;||source_record_name.TYPE||&#39;~&#39;||source_record_name.LINE||&#39;~&#39;||source_record_name.TEXT);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting types from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --elsif i.object_type=&#39;SEQUENCE&#39; then&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_sequences_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;,&amp;nbsp; -- Open mode: w = write.&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; max_linesize =&amp;gt; 32767);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; open refcur_cur for &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select * from dba_sequences where sequence_owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by 2;&lt;br /&gt;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting sequences from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;SEQUENCE_OWNER~SEQUENCE_NAME~MIN_VALUE~MAX_VALUE~INCREMENT_BY~CYCLE_FLAG~ORDER_FLAG~CACHE_SIZE~LAST_NUMBER&#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into sequence_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,sequence_record_name.SEQUENCE_OWNER||&#39;~&#39;||sequence_record_name.SEQUENCE_NAME||&#39;~&#39;||sequence_record_name.MIN_VALUE||&#39;~&#39;||sequence_record_name.MAX_VALUE||&#39;~&#39;||sequence_record_name.INCREMENT_BY||&#39;~&#39;||sequence_record_name.CYCLE_FLAG||&#39;~&#39;||sequence_record_name.ORDER_FLAG||&#39;~&#39;||sequence_record_name.CACHE_SIZE||&#39;~&#39;||sequence_record_name.LAST_NUMBER);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting sequences from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --elsif i.object_type=&#39;SYNONYM&#39; then&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_synonyms_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;,&amp;nbsp; -- Open mode: w = write.&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; max_linesize =&amp;gt; 32767);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; open refcur_cur for &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select * from dba_synonyms where owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by 2;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting synonyms from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;OWNER~SYNONYM_NAME~TABLE_OWNER~TABLE_NAME~DB_LINK&#39;&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; );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into synonym_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,synonym_record_name.OWNER||&#39;~&#39;||synonym_record_name.SYNONYM_NAME||&#39;~&#39;||synonym_record_name.TABLE_OWNER||&#39;~&#39;||synonym_record_name.TABLE_NAME||&#39;~&#39;||synonym_record_name.DB_LINK);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting synonyms from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --elsif i.object_type=&#39;INDEX PARTITION&#39; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --elsif i.object_type=&#39;LOB&#39; then&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_lobs_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;,&amp;nbsp; -- Open mode: w = write.&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; max_linesize =&amp;gt; 32767);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; open refcur_cur for &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select * from dba_lobs where owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by 2;&lt;br /&gt;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting lobs from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;OWNER~TABLE_NAME~COLUMN_NAME~SEGMENT_NAME~TABLESPACE_NAME~INDEX_NAME~CHUNK~ENCRYPT~FORMAT&#39;&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; );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into lobs_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,lobs_record_name.OWNER||&#39;~&#39;||lobs_record_name.TABLE_NAME||&#39;~&#39;||lobs_record_name.COLUMN_NAME||&#39;~&#39;||lobs_record_name.SEGMENT_NAME||&#39;~&#39;||lobs_record_name.TABLESPACE_NAME||&#39;~&#39;||lobs_record_name.INDEX_NAME||&#39;~&#39;||lobs_record_name.CHUNK||&#39;~&#39;||lobs_record_name.ENCRYPT||&#39;~&#39;||lobs_record_name.FORMAT);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting lobs from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --elsif i.object_type=&#39;JOB&#39; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fhandle := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_jobs_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.csv&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;w&#39;, -- Open mode: w = write.&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; max_linesize =&amp;gt; 32767);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; open refcur_cur for &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select * from dba_scheduler_jobs where owner in (SELECT USERNAME FROM DBA_USERS WHERE ORACLE_MAINTAINED=&#39;N&#39;) order by 2;&lt;br /&gt;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Start extracting jobs from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,&amp;nbsp; &#39;OWNER~JOB_NAME~JOB_STYLE~JOB_CREATOR~JOB_TYPE~JOB_ACTION~NUMBER_OF_ARGUMENTS~SCHEDULE_OWNER~SCHEDULE_NAME~SCHEDULE_TYPE~START_DATE~REPEAT_INTERVAL~END_DATE~ENABLED&#39;&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fetch refcur_cur into jobs_record_name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle,jobs_record_name.OWNER||&#39;~&#39;||jobs_record_name.JOB_NAME||&#39;~&#39;||jobs_record_name.JOB_STYLE||&#39;~&#39;||jobs_record_name.JOB_CREATOR||&#39;~&#39;||jobs_record_name.JOB_TYPE||&#39;~&#39;||jobs_record_name.JOB_ACTION||&#39;~&#39;||jobs_record_name.NUMBER_OF_ARGUMENTS||&#39;~&#39;||jobs_record_name.SCHEDULE_OWNER||&#39;~&#39;||jobs_record_name.SCHEDULE_NAME||&#39;~&#39;||jobs_record_name.SCHEDULE_TYPE||&#39;~&#39;||jobs_record_name.START_DATE||&#39;~&#39;||jobs_record_name.REPEAT_INTERVAL||&#39;~&#39;||jobs_record_name.END_DATE||&#39;~&#39;||jobs_record_name.ENABLED);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit when refcur_cur%notfound;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end loop;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; close refcur_cur;&lt;br /&gt;utl_file.put_line(fhandle_err,&#39;Finish extracting jobs from &#39;||serverHostName||&#39;..&#39;||serverInstanceName||&#39; at....&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;));&lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp; end if;&lt;br /&gt;utl_file.fclose(fhandle_err);&lt;br /&gt;--end loop;&lt;br /&gt;&lt;br /&gt;EXCEPTION&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.INVALID_PATH THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;File location is invalid.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20000,&#39;File location is invalid.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.INVALID_MODE THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;The open_mode parameter in FOPEN is invalid.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20001,&#39;The open_mode parameter in FOPEN is invalid.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.INVALID_FILEHANDLE THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;File location is invalid.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20002,&#39;File handle is invalid.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.INVALID_OPERATION THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;File could not be opened or operated on as requested.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20003,&#39;File could not be opened or operated on as requested.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.READ_ERROR THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;Operating system error occurred during the read operation.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20004,&#39;Operating system error occurred during the read operation.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.WRITE_ERROR THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;Operating system error occurred during the write operation.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20005,&#39;Operating system error occurred during the write operation.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.INTERNAL_ERROR THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;Unspecified PL/SQL error.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20006,&#39;Unspecified PL/SQL error.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.CHARSETMISMATCH THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;A file is opened using FOPEN_NCHAR~but later I/O &#39; ||&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;operations use nonchar functions such as PUTF or GET_LINE.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20007,&#39;A file is opened using FOPEN_NCHAR~but later I/O &#39; ||&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;operations use nonchar functions such as PUTF or GET_LINE.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.FILE_OPEN THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;The requested operation failed because the file is open.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20008,&#39;The requested operation failed because the file is open.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.INVALID_MAXLINESIZE THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;The MAX_LINESIZE value for FOPEN() is invalid; it should &#39; || &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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;be within the range 1 to 32767.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20009,&#39;The MAX_LINESIZE value for FOPEN() is invalid; it should &#39; || &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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;be within the range 1 to 32767.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.INVALID_FILENAME THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;The filename parameter is invalid.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20010,&#39;The filename parameter is invalid.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.ACCESS_DENIED THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;Permission to access to the file location is denied.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20011,&#39;Permission to access to the file location is denied.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.INVALID_OFFSET THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;The ABSOLUTE_OFFSET parameter for FSEEK() is invalid; &#39; ||&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;it should be greater than 0 and less than the total &#39; ||&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;number of bytes in the file.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20012,&#39;The ABSOLUTE_OFFSET parameter for FSEEK() is invalid; &#39; ||&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;it should be greater than 0 and less than the total &#39; ||&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;number of bytes in the file.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.DELETE_FAILED THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;The requested file delete operation failed.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20013,&#39;The requested file delete operation failed.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--&amp;nbsp; WHEN UTL_FILE.RENAME_FAILED THEN&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.put_line(fhandle_err,&#39;The requested file rename operation failed.&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;--&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE_APPLICATION_ERROR(-20014,&#39;The requested file rename operation failed.&#39;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; WHEN OTHERS THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fhandle_err := utl_file.fopen(&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; location =&amp;gt;&amp;nbsp; &#39;UTL_DIR&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- File location&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; ,filename=&amp;gt; uname||&#39;_InfoAndErrors_&#39;||serverHostName||&#39;_&#39;||serverInstanceName||&#39;_&#39;||to_char(sysdate,&#39;dd.mm.yyyy hh24:mi:ss&#39;)||&#39;.log&#39; -- File name&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; ,open_mode&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;a&#39;, -- Open mode: w = write.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; max_linesize =&amp;gt; 32767 );&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.put_line(fhandle_err,sqlcode||&#39; - &#39;||sqlerrm);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; EXCEPTION&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; when others then&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; utl_file.fclose(fhandle_err);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE;&lt;br /&gt;end;&lt;br /&gt;/&lt;/span&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2020/01/extract-data-from-all-tables-of-all.html</link><author>noreply@blogger.com (Subhroneel)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-4203877543239166513</guid><pubDate>Sun, 12 Jan 2020 20:04:00 +0000</pubDate><atom:updated>2020-01-12T12:04:13.362-08:00</atom:updated><title>Connecting to non oracle databse from SQLDeveloper using third party database drivers.</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Oracle SQLDeveloper is exclusively create to connect to Oracle database using either ojdbc driver or oracle instant client. But SQL Developer also provide utility to connect to non oracle database using Third party jdbc driver. &lt;br /&gt;&lt;br /&gt;In my limitation of knowledge I have connected to databases like DB2, SQL Server, Sysbase and MySQL.&lt;br /&gt;&lt;br /&gt;In this post I will not show how to connect ot individual database but as whole the steps to connect to third party database. &lt;br /&gt;&lt;br /&gt;Select Tools from the main menu and select Preferences. From the preferences window expand the database node from the left pane. From there select Third Party jdbc driver and a list box will be found with a label Third-Party driver path.&lt;br /&gt;&lt;br /&gt;On the bottom you will find an Add Entry button, click on the button to add new third party jdbc driver. Browse your PC to find the jdbc driver with extension .jar. Click on Ok after you see the entry ofvthe jdbc driver along with it&#39;s path into the listbox. Click on Ok. &lt;br /&gt;&lt;br /&gt;Suppose you add jdbc driver sqljdbc6.jar to connect to SQL Server database. You will find a tab right left to the Oracle tab. Make your connection entry under the tab and click on connect.&lt;br /&gt;&lt;br /&gt;In my later post I will come up with more on this as how to connect to different databases using jdbc driver and link to find such jdbc drivers.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;&quot; src=&quot;data:image/png;base64,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&quot; /&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2020/01/connecting-to-non-oracle-databse-from.html</link><author>noreply@blogger.com (Subhroneel)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-947514913826136507</guid><pubDate>Sun, 12 Jan 2020 19:23:00 +0000</pubDate><atom:updated>2020-01-12T11:43:54.024-08:00</atom:updated><title>Difference between coalesce and nvl in Oracle PLSQL.</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
We all know about basic of nvl function in oracle and somehow a bit about coalesce. But question is when to use nvl and when to use coalesce.&lt;br /&gt;&lt;br /&gt;Suppose in a case where you are trying to read a column value and if it is null we read some default values like 0 in case of number and for character say something like &#39;X&#39;. &lt;br /&gt;&lt;br /&gt;So if the name of the column is Salary we write nvl(Salary,0) or coalesce(Salary,0). Now it is know that coalesce is a bit slower than nvl. As coalesce can take multiple arguments but nvl can take only 2. So when it is q question of only checking one single variable then nvl is the best option. But if you need to check multiple variable then coalesce is better option. &lt;br /&gt;&lt;br /&gt;Suppose we have 4 columns to check i.e. coalesce(Amount1, Amount2, Amount3, Amount4,0). This can also be written using case when statement, i.e. case when Amount1 is not null then Amount1 when Amount2 is not null then Amount2 when Amount3 is not null then Amount3 when Amount4 is not null then Amount4 else 0 end. In case with nvl it can be written as nvl(Amount1,nvl(Amount2,nvl(Amount3,nvl(Amount4,0)))). But using so many nvl statement is not only junky code but also can lead to performance issue. So it is good to use coalsce in case of more than one column or else nvl.&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2020/01/difference-between-coalesce-and-nvl-in.html</link><author>noreply@blogger.com (Subhroneel)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-831557078576136205</guid><pubDate>Sun, 12 Jan 2020 19:23:00 +0000</pubDate><atom:updated>2020-01-12T11:23:50.449-08:00</atom:updated><title>How to make database objects accessible using synonyms in oracle.</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
When it comes to application development it is not always happens that application developer are so much sound with database knowledge. They know their own part of task to execute. Like to connect to database, to bind with the database object and to fetch data, insert / update or delete data. But it is not possible for them to take account of each and every database objects. &lt;br /&gt;&lt;br /&gt;Let us start with an example. An application is accessing a database schema ACC_DATA which contains all the tables / views. Now it is obvious that it will never have direct access to this schema user rather it will have to connect from an application user. In our case let us consider a technical user ACC_APP. Now ACC_APP have read / write access to ACC_DATA. That mean it can select / insert / update and delete from tables in ACC_DATA.&lt;br /&gt;&lt;br /&gt;Now supposed some new views have been created in ACC_DATA and application developer have been instructed to add those views in some new reports to be displayed in the application GUI. Now these application handles several other schema users data through ACC_APP. So it is not possible for the developer to keep track as from which schema these tables are supposed to fetch data and use schemaname.table name inside the application code and it is not also feasible in all scenario to user this kind of schemaname.tablename as it is not permissible. So what is the solution?&lt;br /&gt;&lt;br /&gt;The solution is to create a snyonym for the respective schema.tablename in ACC_APP. And developer can directly user the synonym name which will access the tablename using the synonym thinking it as the actual tablename, so it acts as pseudo tablename.&lt;br /&gt;&lt;br /&gt;So whenever a new table is added, the request is send to dba to add one synonym into ACC_APP.&lt;br /&gt;&lt;br /&gt;Suppose a new table CUST_DATA is created in ACC_DATA. We already consider that grant select any table privileges is provivded to the user ACC_APP. So exclusive privileges are not required to provide for this table to ACC_APP and we assume the privilege is already provided when the table is created. &lt;br /&gt;&lt;br /&gt;So DBA should run one command like CREATE SYNONYM CUST_DATA for ACC_DATA.CUST_DATA.&lt;br /&gt;&lt;br /&gt;Now let us consider the situation where none of the SYNONYMS existis in ACC_APP and the dba has to create synonyms for all existing tables / VIEWS in ACC_DATA in ACC_APP. So if the number of tables / views are thousands then dba should be absconding from office from the very next day. So dba shouls create a script which will create SYNONYMS for all existing tables / views in ACC_APP. Here below I an writing down that script.&lt;br /&gt;&lt;br /&gt;DECLARE&lt;br /&gt;&lt;br /&gt;CURSOR REC IS SELECT TABLE_NAME FROM ALL_USERS WHERE USERNAME=&#39;ACC_DATA&#39;;&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOR I IN REC LOOP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXECUTE IMMEDIATE &#39;CREATE SYNONYM ACC_APP.&#39;||I.TABLE_NAME||&#39; FOR ACC_DATA.&#39;||I.TABLE_NAME;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END LOOP;&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;So all tables / views of ACC_DATA will be accessible with this pseudo tablename / synonyms within ACC_APP.&lt;br /&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2020/01/how-to-make-database-objects-accessible.html</link><author>noreply@blogger.com (Subhroneel)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-7005562557725417065</guid><pubDate>Sun, 12 Jan 2020 18:47:00 +0000</pubDate><atom:updated>2020-01-12T10:47:13.671-08:00</atom:updated><title>Working with ROLES in Oracle</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Role is kind of template which not only helps in encapsulating set of privileges provided to a certain user but also it helps in maintaining business rules for organization. User management can be handled smoothly with use of roles. Granting ad-hoc privileges to users is not recommend at enterprise level architecture. &lt;br /&gt;&lt;br /&gt;In this content I will try to explain how role helps in managing business rules and security. &lt;br /&gt;&lt;br /&gt;Suppose a company X have one datawarehouse application handling application for daily batch and transaction. It uses one oracle database connecting a schema X_DATA. X_Data contains all the business objects and hold the versioned data everyday after the daily batch job completes and provide reports to end user through application. Now end user have to login to the database using individual personal user which will access the objects of X_DATA. &lt;br /&gt;&lt;br /&gt;From this set of application users there are 2 types of users.&amp;nbsp; &lt;br /&gt;1. User who can view the data from report and update certain data if necessary&lt;br /&gt;2. User who can only view the data.&lt;br /&gt;&lt;br /&gt;So for providing such kind of privileges 2 roles are created. &lt;br /&gt;i. READ_DWH_ROLE - This will provide select privileges to all tables / view of X_DATA to the user.&lt;br /&gt;2. READ_WRITE_DWH_ROLE - This will provide select / update privileges to users to tables / views of X_DATA&lt;br /&gt;&lt;br /&gt;Now let us see what command was used by DBA to add privileges to the above role on X_DATA schema user.&lt;br /&gt;&lt;br /&gt;i.&amp;nbsp; READ_DWH_ROLE - grant select any tables on X_DATA to READ_DWH_ROLE.&lt;br /&gt;ii. READ_WRITE_DWH_ROLE - grant select any table,update any table on X_DATA to READ_WRITE_DWH_ROLE&lt;br /&gt;&lt;br /&gt;Now end user request the required role from some tool or mail with manager&#39;s approval to dba to provide access of the role to the user if exists or create new user and provide access.&lt;br /&gt;&lt;br /&gt;Lets us assume that there is an end user Mike Anderson requesting a new user mikean requesting the role READ_DWH_ROLE and another user Peter Vaun requesting the role READ_WRITE_DWH_ROLE. The request got approved by manager and went to DBA.&lt;br /&gt;&lt;br /&gt;DBA will login to system user and will create the to new user. Since this user will not be owner of any db objects but only access objects of X_DATA.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;CREATE USER MIKEAN IDENTIFIED BY MIKEAN DEFAULT TABLESPACE TBLPSPC_X_DATA; &lt;br /&gt;CREATE USER PETVAUN IDENTIFIED BY PETVAUN DEFAULT TABLESPACE TBLPSPC_X_DATA;&lt;br /&gt;&lt;br /&gt;GRANT CONNECT TO MIKEAN;&lt;br /&gt;GRANT CONNECT TO PETVAUN;&lt;br /&gt;&lt;br /&gt;GRANT READ_DWH_ROLE TO MIKEAN;&lt;br /&gt;GRANT READ_WRITE_DWH_ROLE TO PETVAUN;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So it&#39;s all set. Now mikean can read tables / views of all X_DATA witn select query or some application accessing the object using X_DATA.table_name, X_DATA.viewname and petvaun can read / update tables/ views of X_DATA.&lt;br /&gt;&lt;br /&gt;Now suppose&amp;nbsp; the application developer is not aware of accessing this objects from X_DATA schema and he is only provided the tablename / view name and if he put the table or view name inside his application like select * from tablename instead of select * from X_DATA.tablename the application will definitely get and oracle error as table or view does not exists. In that case it is neccessary for the user to add another request for creating synonym privileges and create synonyms for all table and view of X_DATA on itself.&lt;br /&gt;&lt;br /&gt;In that case dba has to run first grant create synonym privileges to the usrs.&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;br /&gt;GRANT CREATE ANY SNONYM TO MIKEAN;&lt;br /&gt;GRANT CREATE ANY SYONYOM TO PETVAUN;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then create a script like this and execute.&lt;br /&gt;&lt;br /&gt;DECLARE&lt;br /&gt;&lt;br /&gt;CURSOR REC IS SELECT TABLE_NAME FROM ALL_USERS WHERE USERNAME=&#39;X_DATA&#39;;&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOR I IN REC LOOP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; EXECUTE IMMEDIATE &#39;CREATE SYNONYM MIKEAN.&#39;||I.TABLE_NAME||&#39; FOR X_DATA.&#39;||I.TABLE_NAME;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; EXECUTE IMMEDIATE &#39;CREATE SYNONYM PETVAUN.&#39;||I.TABLE_NAME||&#39; FOR X_DATA.&#39;||I.TABLE_NAME;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END LOOP;&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;Now if the application user the table names / view names it will actually use the synoym which will actually invoke the underlying tablename and viewname.&lt;br /&gt;&lt;br /&gt;So this is the first part of creating role and adding privilege and assigning it to the user.&lt;br /&gt;&lt;br /&gt;Wait for the next post to find out more on roles.&lt;br /&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2020/01/working-with-roles-in-oracle.html</link><author>noreply@blogger.com (Subhroneel)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-1170404667712334967</guid><pubDate>Sun, 12 Jan 2020 07:15:00 +0000</pubDate><atom:updated>2020-01-11T23:15:46.115-08:00</atom:updated><title>Updating view in Oracle plsql</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
As we all know that a view columns cannot be updated like we do in table. But there are certain ways to update the corresponding table columns of a view using instead of triggers. &lt;br /&gt;&lt;br /&gt;A trigger need to be created on the view that need to be updated with instead of clause and inside the trigger the corresponding table columns can be updated.&lt;br /&gt;&lt;br /&gt;Let us see this with an example.&lt;br /&gt;&lt;br /&gt;Say we have to tables. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Employee&lt;/b&gt;&lt;br /&gt;The structure of the employee table is as such below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;EMPID&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER(20),&lt;br /&gt;EMPNAME&amp;nbsp; VARCHAR2(100),&lt;br /&gt;DEPTID&amp;nbsp;&amp;nbsp; NUMBER(20),&lt;br /&gt;AGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER(3),&lt;br /&gt;CTC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER &lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Department&lt;/b&gt;&lt;br /&gt;DEPTID&amp;nbsp;&amp;nbsp;&amp;nbsp; NUMBER(10),&lt;br /&gt;DEPTNAME&amp;nbsp; NUMBER&lt;br /&gt;&lt;br /&gt;Now we have a view name employee_view whose query is as below&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE VIEW EMPLOYEE_VIEW AS &lt;br /&gt;SELECT EMPNAME,DEPTNAME,AGE,CTC &lt;br /&gt;FROM EMPLOYEE E&lt;br /&gt;LEFT JOIN DEPARTMENT D ON D.DEPTID = E.DEPTID&lt;br /&gt;&lt;br /&gt;This view can be easily inserted / updated / deleted using an insert / update / delete statement. &lt;br /&gt;&lt;br /&gt;update employee_view set empname = :empname, deptname = :deptname where empid = :empid;&lt;br /&gt;&lt;br /&gt;So in what case a view is not updatable? &lt;br /&gt;&lt;br /&gt;1. Using distinct operator&lt;br /&gt;2. Using group or order by clause&lt;br /&gt;3. Using connect by, start with clause&lt;br /&gt;4. Using a sub query&lt;br /&gt;5. Using any kind of functions or oracle internal aggregated functions (point number 2 applicable)&lt;br /&gt;6. Using join condition.&lt;br /&gt;&lt;br /&gt;In the above case a instead of trigger need to be created. Let us assume that the view query is a such&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;CREATE OR REPLACE VIEW EMPLOYEE_DEPT_VIEW AS&lt;br /&gt;SELECT EMPNAME,DEPTNAME,AGE,CTC &lt;br /&gt;FROM EMPLOYEE E&lt;br /&gt;LEFT JOIN DEPARTMENT D ON D.DEPTID = E.DEPTID&lt;br /&gt;ORDER BY DEPTNAME,EMPNAME&lt;/span&gt;&lt;br /&gt;Now if we try to insert / update / delete&amp;nbsp; it will not allow as join condition have been used in the query.&lt;br /&gt;&lt;br /&gt;In this scenario we need to add one instead of trigger which will insert into (may not be for the above view query as not all columns are present and depending on not null constraints or check constraints) the table, update the table or delete from table based on the dml query that will be written within the instead of trigger.&lt;br /&gt;&lt;br /&gt;Here given below are given 2 instead of trigger on insert / update or delete.&lt;br /&gt;&lt;br /&gt;Update&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;CREATE OR REPLACE TRIGGER TRG_EMPLOYEE_VIEW AS&lt;br /&gt;INSTEAD OF UPDATE ON EMPLOYEE_VIEW&lt;br /&gt;FOR EACH ROW&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;UPDATE EMPLOYEE SET EMPNAME=:NEW.EMPNAME, AGE = :NEW.AGE, CTC = :NEW.CTC WHERE EMPID = :OLD.EMPID;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;UPDATE DEPARTMENT SET DEPTNAME = :NEW.DEPTNAME WHERE DEPTID = :OLD.DEPTID;&lt;br /&gt;EMD;&lt;/span&gt;/&lt;br /&gt;As from the above we observe that for update we are taking all :new.fieldname for the updated value and since key field is empid for employee and deptid is key field for deprtment.&lt;br /&gt;&lt;br /&gt;Now lets insert data into the EMPLOYEE_DEPT_VIEW&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;CREATE OR REPLACE TRIGGER TRG_EMPLOYEE_DEPT_VIEW &lt;br /&gt;INSTEAD OF INSERT ON EMPLOYEE_DEPT_VIEW&lt;br /&gt;FOR EACH ROW&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;INSERT INTO EMPLOYEE VALUES(:NEW.EMPID,:NEW.EMPNAME,:NEW.DEPTID,:NEW.AGE,:NEW.CTC);&lt;br /&gt;&amp;nbsp;INSERT INTO DEPARTMENT VALUES(:NEW.DEPTID,:NEW.DEPTNAME);&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE TRIGGER TRG_EMPLOYEE_DEPT_VIEW &lt;br /&gt;INSTEAD OF DELETE ON EMPLOYEE_DEPT_VIEW&lt;br /&gt;FOR EACH ROW&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;DELETE FROM EMPLOYEE WHERE EMPID=:NEW.EMPID;&lt;br /&gt;&amp;nbsp;DELETE FROM DEPARTMENT WHERE DEPTID = :NEW.DEPTID;&lt;br /&gt;END;&lt;br /&gt;&lt;/span&gt;Now if we write a delete query like delete from EMPLOYEE_DEPT_VIEW where empid = :old.empid and deptid = :old.deptid;&lt;br /&gt;This will delete corresponding record from employee and deprtment. IF the value of any of the field like empid or deptid does not match then that record will not be deleted but the other matching record will be deleted.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;CREATE OR REPLACE TRIGGER TRG_EMPLOYEE_DEPT_VIEW &lt;br /&gt;INSTEAD OF UPDATE ON EMPLOYEE_DEPT_VIEW&lt;br /&gt;FOR EACH ROW&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;UPDATE EMPLOYEE SET EMPNAME = :NEW.EMPNAME, AGE = :NEW.AGE, CTC = :NEW.CTC WHERE EMPID=:NEW.EMPID;&lt;br /&gt;&amp;nbsp;UPDATE DEPARTMENT SET DEPTNAME = :NEW.DEPTNAME WHERE DEPTID = :NEW.DEPTID;&lt;br /&gt;END;&lt;/span&gt;&lt;br /&gt;Now if we write a delete query like update EMPLOYEE_DEPT_VIEW where empid = :old.empid and deptid = :old.deptid;&lt;br /&gt;This will update corresponding record columns from employee and deprtment. IF the value of any of the field like empid or deptid does not match then that record will not be updated but the other matching record will be updated.&lt;br /&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2020/01/updating-view-in-oracle-plsql.html</link><author>noreply@blogger.com (Subhroneel)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-993580585459083076</guid><pubDate>Fri, 27 May 2016 10:49:00 +0000</pubDate><atom:updated>2016-05-27T03:54:10.725-07:00</atom:updated><title>Guess the output of this recursion problem.</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div data-contents=&quot;true&quot;&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;85qoo-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;85qoo-0-0&quot;&gt;
&lt;span class=&quot;_5u8n&quot; data-offset-key=&quot;85qoo-0-0&quot; spellcheck=&quot;false&quot;&gt;&lt;span data-offset-key=&quot;85qoo-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;#include&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span data-offset-key=&quot;85qoo-1-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;&quot;iostream&quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;4a9gr-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;4a9gr-0-0&quot;&gt;
&lt;span data-offset-key=&quot;4a9gr-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;using namespace std;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;e5i1u-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;e5i1u-0-0&quot;&gt;
&lt;span data-offset-key=&quot;e5i1u-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;void func(int bool)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;2htaa-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;2htaa-0-0&quot;&gt;
&lt;span data-offset-key=&quot;2htaa-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;aplmr-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;aplmr-0-0&quot;&gt;
&lt;span data-offset-key=&quot;aplmr-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;  if(!bool)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;67msn-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;67msn-0-0&quot;&gt;
&lt;span data-offset-key=&quot;67msn-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;    return 0;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;d6fsl-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;d6fsl-0-0&quot;&gt;
&lt;span data-offset-key=&quot;d6fsl-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;  cout&amp;lt;&amp;lt;bool; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;48o9r-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;48o9r-0-0&quot;&gt;
&lt;span data-offset-key=&quot;48o9r-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;  func(!bool);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;aj18i-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;aj18i-0-0&quot;&gt;
&lt;span data-offset-key=&quot;aj18i-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;  cout&amp;lt;&amp;lt;bool;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;be9mu-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;be9mu-0-0&quot;&gt;
&lt;span data-offset-key=&quot;be9mu-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;b69hl-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;b69hl-0-0&quot;&gt;
&lt;span data-offset-key=&quot;b69hl-0-0&quot;&gt;&lt;br data-text=&quot;true&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;cmdhd-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;cmdhd-0-0&quot;&gt;
&lt;span data-offset-key=&quot;cmdhd-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;int main()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;64ft9-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;64ft9-0-0&quot;&gt;
&lt;span data-offset-key=&quot;64ft9-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;1uear-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;1uear-0-0&quot;&gt;
&lt;span data-offset-key=&quot;1uear-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;  func(123);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;bed4t-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;bed4t-0-0&quot;&gt;
&lt;span data-offset-key=&quot;bed4t-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;3dm5t-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;3dm5t-0-0&quot;&gt;
&lt;span data-offset-key=&quot;3dm5t-0-0&quot;&gt;&lt;br data-text=&quot;true&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;n53u-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;n53u-0-0&quot;&gt;
&lt;span data-offset-key=&quot;n53u-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;What is the output?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;5135b-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;5135b-0-0&quot;&gt;
&lt;span data-offset-key=&quot;5135b-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;1. 123123&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;8req3-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;8req3-0-0&quot;&gt;
&lt;span data-offset-key=&quot;8req3-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;2, 123&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;fsdbf-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;fsdbf-0-0&quot;&gt;
&lt;span data-offset-key=&quot;fsdbf-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;3. Stack Overflow&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;fvfk0-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;fvfk0-0-0&quot;&gt;
&lt;span data-offset-key=&quot;fvfk0-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;4. 0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;fvfk0-0-0&quot;&gt;
&lt;span data-offset-key=&quot;fvfk0-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;fvfk0-0-0&quot;&gt;
&lt;span data-offset-key=&quot;fvfk0-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt;#cprogramming #cpluplus #cprogramming #recursion&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;fvfk0-0-0&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;e68ln-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;e68ln-0-0&quot;&gt;
&lt;span data-offset-key=&quot;e68ln-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-editor=&quot;1ttte&quot; data-offset-key=&quot;7v7k4-0-0&quot;&gt;
&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;7v7k4-0-0&quot;&gt;
&lt;span data-offset-key=&quot;7v7k4-0-0&quot;&gt;&lt;span data-text=&quot;true&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2016/05/c-recursion-problem.html</link><author>noreply@blogger.com (Subhroneel)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-7375966720523053017</guid><pubDate>Fri, 13 May 2016 01:59:00 +0000</pubDate><atom:updated>2016-05-12T19:02:34.499-07:00</atom:updated><title>Operator overloading in c++</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
A small example of how to overload operators in c++. In this program we have binary operator, relation operator, stream operator used on String class. Constructor are also use to directly assign string to class.&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream.h&amp;gt;&lt;br /&gt;
#include&amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class String&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;char s[50];&lt;br /&gt;
public:&lt;br /&gt;
&amp;nbsp;String() &lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp; strcpy(s,NULL);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;String(char *v)&lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp; strcpy(s,v);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;String(String&amp;amp; v)&lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp; strcpy(s,v.s);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;String operator +=(String a){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; return String(strcat(s,a.s));&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;int operator ==(String a)&lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return !strcmp(s,a.s);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;int operator !=(String a)&lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return strcmp(s,a.s);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;int operator &amp;gt;(String a)&lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return strcmp(s,a.s);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; int operator &amp;lt;(String a)&lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return strcmp(s,a.s);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; String operator =(String b){&lt;br /&gt;
&amp;nbsp;&amp;nbsp; return String(strcpy(s,b.s));&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; String operator +(String b){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; String s1(s);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; return String(strcat(s1.s,b.s));&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; friend ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;, String );&lt;br /&gt;
&amp;nbsp; friend istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;, String &amp;amp;);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;os, String ob)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;os &amp;lt;&amp;lt; ob.s;&lt;br /&gt;
&amp;nbsp;return os;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;is, String &amp;amp;ob)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;is&amp;gt;&amp;gt;ob.s;&lt;br /&gt;
&amp;nbsp;return is;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;String obj(&quot;Hello C &quot;);&lt;br /&gt;&amp;nbsp;String obj1(&quot;Hello C++ &quot;);&lt;br /&gt;&amp;nbsp;if(obj1&amp;gt;obj)&lt;br /&gt;&amp;nbsp;cout&amp;lt;&amp;lt;obj1&amp;lt;&amp;lt;&quot; is greater than &quot;&amp;lt;&amp;lt;obj;&lt;br /&gt;else if(obj1&amp;lt;obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout&amp;lt;&amp;lt;obj1&amp;lt;&amp;lt;&quot; is less than &quot;&amp;lt;&amp;lt;obj;&lt;br /&gt;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout&amp;lt;&amp;lt;&quot;Both &quot;&amp;lt;&amp;lt;obj1&amp;lt;&amp;lt;&quot; and &quot;&amp;lt;&amp;lt;obj&amp;lt;&amp;lt;&quot; are equal&quot;;&lt;br /&gt;&amp;nbsp;return;&lt;br /&gt;} &lt;br /&gt;
#cprogramming #clanguage #c++&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2016/05/operator-overloading-in-c.html</link><author>noreply@blogger.com (Subhroneel)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-8222511895272124573</guid><pubDate>Sun, 24 Jan 2016 18:12:00 +0000</pubDate><atom:updated>2016-01-24T10:12:35.088-08:00</atom:updated><title>Using #Translation #Command In #Linux </title><description>https://youtu.be/5wKB2OJYItI</description><link>http://techgigsonline.blogspot.com/2016/01/using-translation-command-in-linux.html</link><author>noreply@blogger.com (Subhroneel)</author><thr:total>0</thr:total><georss:featurename>Veerannapalya Rd, Bangalore Urban</georss:featurename><georss:point>13.036898 77.613914</georss:point></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-1526697510554355918</guid><pubDate>Thu, 17 Dec 2015 18:25:00 +0000</pubDate><atom:updated>2015-12-17T10:25:34.891-08:00</atom:updated><title>Creating your own http server using python script.</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s1600/python.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s200/python.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;This lesson is about creating your own web server without using apache. To do this we are using two libraries.&lt;br /&gt;BaseHTTPServer and SimpleHTTPServer.&amp;nbsp; BaseHTTPServer creates the http daemon and SimpleHTTPServer &lt;br /&gt;creates the http handler. The program takes one argument which is the port number to which server will be running.&lt;br /&gt;If no port number is mentioned server will run on port 8000.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
So here is the code for your Web Server.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #bf9000;&quot;&gt;import sys&lt;br /&gt;import BaseHTTPServer&lt;br /&gt;from SimpleHTTPServer import SimpleHTTPRequestHandler&lt;br /&gt;&lt;br /&gt;Handler = SimpleHTTPRequestHandler&lt;br /&gt;Server = BaseHTTPServer.HTTPServer&lt;br /&gt;&lt;br /&gt;Protocol = &quot;HTTP/1.1&quot;&lt;br /&gt;&lt;br /&gt;if sys.argv[1:]:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; port = int(sys.argv[1])&lt;br /&gt;else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; port = 8000&lt;br /&gt;&lt;br /&gt;server_address = (&quot;127.0.0.1&quot;, port) &lt;br /&gt;# if you are opt to use this on your local machine 127.0.0.1, but you want to use it as web server in a network&lt;br /&gt;# with various sub net then use 0.0.0.0 instead.&lt;br /&gt;&lt;br /&gt;Handler.protocol_version = Protocol&lt;br /&gt;httpd = Server(server_address, Handler)&lt;br /&gt;print(&quot;HTTP Server started...&quot;)&lt;br /&gt;httpd.serve_forever()&lt;br /&gt;&lt;br /&gt;After saving this files (i.e. PythonWebServer.py), goto the command line and type &lt;br /&gt;python PythonWebServer.py 8000 (8000 port number is optional.)&lt;br /&gt;&lt;br /&gt;The directory where you executed PythonWebServer.py is the root directory of your web server.&lt;br /&gt;Create a html file on the root, named say firstPage.html&lt;br /&gt;&lt;br /&gt;Now open your browser and type localhost:8000/firstPage.html&lt;br /&gt;And your html page will be parsed and displayed.&lt;br /&gt;&lt;br /&gt;This type of web server can be used on your local desktop or small home network.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2015/12/creating-your-own-http-server-using.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s72-c/python.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-1338127251944980280</guid><pubDate>Mon, 14 Dec 2015 07:10:00 +0000</pubDate><atom:updated>2015-12-13T23:37:49.057-08:00</atom:updated><title>Executing python script from Web Browser without using Apache.</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #b4a7d6;&quot;&gt;&lt;b&gt;&amp;nbsp;In one of our last blog we have demonstrated that how to execute python script on web browser using Apache Web &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: #b4a7d6;&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s1600/python.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s200/python.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #b4a7d6;&quot;&gt;&lt;b&gt;Server. In this tutorial we will you how to execute python script in browser without using apache web server.. Python has one of it&#39;s own library CGIHTTPServer.py which creates a web server capable of performing as web server. For creating this web server all you need is python application version 2.7.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #b4a7d6;&quot;&gt;&lt;b&gt;Download link of python 2.7&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.python.org/ftp/python/2.7/python-2.7.msi&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;1. For 32bit version&amp;nbsp;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.python.org/ftp/python/2.7/python-2.7.amd64.msi&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;2. For 64 bit version.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
After downloading and installing, goto the python root directory.(i.e. c:\python27)&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;You have to run this command here.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;C:\Python27&amp;gt;&lt;b&gt;python -m CGIHTTPServer&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;When you run this command it will start the server at default port 8000.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;If you want to run it in a different port just add a port number after the command given above&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;C:\Python27&amp;gt;&lt;b&gt;python -m CGIHTTPServer 9000&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;Now check whether you have a folder named cgi-bin on the python root directory.If not create one&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;using md or mkdir cgi-bin and changed to cgi-bin directory.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;Put all your executable python script on this folder.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;Now go to the browser and type &lt;b&gt;localhost:9000/cgi-bin/sample.py&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;Though the server will run by typing localhost:9000 but python code will&amp;nbsp;&lt;b&gt; &lt;/b&gt;only parsed by browser when executing script from cgi-bin folder.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;Example sample.py&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;#D!\Python27\python&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;print &quot;Content-type: text/html\n&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;print &quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Hello CGI&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;print &quot;&amp;lt;body&amp;gt;&amp;lt;h2&amp;gt;Hello from CGIHTTPServer&amp;lt;h2&amp;gt;r&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;Executing this script will show&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;Hello from CGIHTTPServer&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s1600/python.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2015/12/executeing-python-script-from-web.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s72-c/python.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-354654238865573812</guid><pubDate>Tue, 08 Dec 2015 10:05:00 +0000</pubDate><atom:updated>2015-12-08T02:05:55.887-08:00</atom:updated><title>Server Client socket programming in Java</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCic2pdTBZSTBQKraIwib642TtoqmcOikFu4lAQnEGHQQv01WpSBTmYFihUsHglm14qSmZF4uuR6h_51EeUe_ffrBf2-AvSGxhNAceqJoLEpT59XgQcYzOQePKQGeBLeNy-UH6m3a0hYc_/s1600/java-jsp.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCic2pdTBZSTBQKraIwib642TtoqmcOikFu4lAQnEGHQQv01WpSBTmYFihUsHglm14qSmZF4uuR6h_51EeUe_ffrBf2-AvSGxhNAceqJoLEpT59XgQcYzOQePKQGeBLeNy-UH6m3a0hYc_/s200/java-jsp.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
This tutorial is made with a purpose of understanding the basic concepts of socket programming with Java. For socket programming you need a package java.net which is within J2SE API&#39;s, which consists of classes and interface for low level communications. java.net supports communication with 2 types of protocols,&lt;br /&gt;
TCP (Transmission Control Protocol) and UDP (User Datagram Protocol). In this tutorial we are dealing with to application, one Server and another Client. When the Server program starts it listens for client request on the host address given and on a given port number. Ports already in use cannot be used, server is also set to a timeout after 10 seconds. Then the client program which whenever connects to the server, server accepts connection and sends a reply to the client.&lt;br /&gt;
&lt;br /&gt;
1. &lt;b&gt;SocketServer.java.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;/*&lt;/b&gt;Import these 2 packages, first one is for socket programming and the second one is for input output streaming.&lt;b&gt; */&lt;/b&gt;&lt;br /&gt;
import java.net.*;&lt;br /&gt;import java.io.*;&lt;br /&gt;
&lt;br /&gt;public class SocketServer extends Thread&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; private ServerSocket serverSocket;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; public SocketServer(int port) throws IOException&lt;br /&gt;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; serverSocket = new ServerSocket(port);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; serverSocket.setSoTimeout(10000);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;while(true)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;try&lt;br /&gt;&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;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;Waiting for client on port &quot; + serverSocket.getLocalPort() + &quot;....&quot;);&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;Socket server = serverSocket.accept();&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;System.out.println(&quot;Connected to &quot; + server.getRemoteSocketAddress());&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;DataInputStream in&amp;nbsp; = new DataInputStream(server.getInputStream());&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;System.out.println(in.readUTF());&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;DataOutputStream out = new DataOutputStream(server.getOutputStream());&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;out.writeUTF(&quot;Thanks for connecting to &quot; + server.getLocalSocketAddress());&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;server.close();&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&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;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;catch(SocketTimeoutException s)&lt;br /&gt;&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;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;\nSocket time out..&quot;);&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;break;&lt;br /&gt;&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;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;catch(IOException e)&lt;br /&gt;&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;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(e.getMessage());&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;break;&lt;br /&gt;&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;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;int port = Integer.parseInt(args[0]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Thread t = new SocketServer(port);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;t.start();&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;catch(IOException e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(e.getMessage());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
2. SocketClient.java&lt;br /&gt;
&lt;br /&gt;
import java.net.*;&lt;br /&gt;import java.io.*;&lt;br /&gt;&lt;br /&gt;public class SocketClient &lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String serverName = args[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int port = Integer.parseInt(args[1]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Connecting to &quot; + serverName + &quot; on port &quot; + port);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Socket client = new Socket(serverName, port);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //client.connect();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Connected to &quot; + client.getRemoteSocketAddress());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; OutputStream outServer = client.getOutputStream();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DataOutputStream out = new DataOutputStream(outServer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; out.writeUTF(&quot;\nHello from &quot; + client.getLocalSocketAddress());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream inServer = client.getInputStream();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DataInputStream in = new DataInputStream(inServer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Server says...&quot; + in.readUTF());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; client.close();&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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; catch(IOException e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(e.getMessage());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2015/12/server-client-socket-programming-in-java.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCic2pdTBZSTBQKraIwib642TtoqmcOikFu4lAQnEGHQQv01WpSBTmYFihUsHglm14qSmZF4uuR6h_51EeUe_ffrBf2-AvSGxhNAceqJoLEpT59XgQcYzOQePKQGeBLeNy-UH6m3a0hYc_/s72-c/java-jsp.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-1111872646790463123</guid><pubDate>Tue, 24 Nov 2015 18:21:00 +0000</pubDate><atom:updated>2015-11-25T12:19:06.158-08:00</atom:updated><title>How to enable python code execute in browser using Wamp.</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s1600/python.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s200/python.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #8e7cc3;&quot;&gt;&lt;b&gt;This becomes a head scratching job and bit confusing too to configure web server to execute Python code. It&#39;s not rocket science but seems we get confused on googling and getting different&amp;nbsp; suggestions. So we will provide here the perfect configuration to execute .py files in browser.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #8e7cc3;&quot;&gt;&lt;b&gt;First of all open httpd.conf file from the \wamp\bin\apache\apachex.x.x\conf\ directory of your wamp directory. Search for the line &amp;lt;Directory &quot;c:/wamp/www/&quot;&amp;gt; (assuming that wamp is installed in C drive and your root directory is c:\wamp\www, you may also use any other root directory).&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;Uncomment these line if commented.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;LoadModule cgi_module modules/mod_cgi.so&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;Add this line if not exists. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;Options +ExecCGI, if you are not sure what else to add, because by default all options are added if you do not mention them and adding any options restrict it to added options, unless you add one + sign before the option.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;If &quot;Options&quot; line exists uncomment it if commented.&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;Add ExecCGI at the end. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;Options Indexes FollowSymLinks ExecCGI.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;Also add this line if does not exists&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;AddHandler cgi-script .cgi .py&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;Now put you python script in the root folder or some sub directory of root folder.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;Do not forget to add this line at the begining of the script.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;#!c:\pythonPath (i.e. #!c:\python34\python)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;If you do not add this line script will not execute as browser will not know where is the python program to compile your script.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;Now say your wamp base url is http://localhost:8090/ and your python script is in root directory. c:\wamp\www, then type http://localhost:8090/programName.py&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;Here is a sample program. This program will connect to the wamp server and display the welcome page.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;#!D:/Python34/python&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;import socket&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;server = &#39;localhost&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;port = 8090&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;request = &quot;GET / HTTP/1.1\r\nHost:&quot; + server + &quot;:&quot; + str(port) + &quot;\r\n\r\n&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;s.connect((server, port))&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;s.send(request.encode(&#39;UTF-8&#39;))&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;print(&quot;Content-Type: text/html\n\n&quot;)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;result = &quot;.&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;while len(result)&amp;gt;0:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = s.recv(4096)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chunk = result.decode(&#39;UTF-8&#39;)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(chunk)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e69138;&quot;&gt;&amp;nbsp;#python #pythonprogramming #wamp #pythonscript&lt;/span&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2015/11/how-to-enable-python-code-execute-in.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s72-c/python.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-2979542058508964691</guid><pubDate>Wed, 28 Oct 2015 10:32:00 +0000</pubDate><atom:updated>2015-10-28T03:48:22.469-07:00</atom:updated><title>Python dictionary</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s1600/python.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s200/python.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #9fc5e8;&quot;&gt;&lt;b&gt;In&amp;nbsp; python dictionary Values each key is separated from it&#39;s values by a colon {:},&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #9fc5e8;&quot;&gt;&lt;b&gt;each items in dictionary is separated by commas, and all items are enclosed in braces {}.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #9fc5e8;&quot;&gt;&lt;b&gt;Keys of a dictionary should be unique. No duplicate. Values can be of any type but keys&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #9fc5e8;&quot;&gt;&lt;b&gt;should be immutable.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;#!/usr/bin/python&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;dic = {&#39;Code&#39;: &#39;001&#39;, &#39;Name&#39;: &#39;Alex&#39;, &#39;Age&#39;: 27}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;dic1 = {&#39;Code&#39;: &#39;001&#39;, &#39;Name&#39;: &#39;Peter&#39;, &#39;Age&#39;: 21}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;print &quot;dic[&#39;Code&#39;]: &quot;, dic[&#39;Code&#39;] # prints dic[&#39;Code&#39;]: 001&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;print &quot;dic[&#39;Name&#39;]: &quot;, dic[&#39;Name&#39;] # prints dic[&#39;Name&#39;]: Alex&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;print &quot;dic[&#39;Age&#39;]: &quot;, dic[&#39;Age&#39;]&amp;nbsp;&amp;nbsp; # prints dic[&#39;Age&#39;]: 27&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;#example functions and methods used with python dictionary&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;#compare function compares 2 dictionaries&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# cmp returns 1 on mismatch and 0 on match&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;if cmp(dic,dic1)==1:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&amp;nbsp; print &quot;Both dictionaries are not equal&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;else:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&amp;nbsp; print &quot;Both dictionaries are equal&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# len function prints the length of dictionaries &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;print &quot;Length of dic : &quot;,len(dic)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# Removing entry with key &#39;Code&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;del dic[&#39;Code&#39;]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# Deleting all entries in dic&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;dic.clear()&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# Deleting entire dictionary&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;del dic&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# fromkeys copy keys to another dictionary.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# It has 2 parameters &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# 1. seq - the list of values used for the key preparation&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# 2. value - optional, if provided then entire element values will be set to this value&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;dic2 = dic1.fromkeys(dic1,10)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;print &quot;dic2[&#39;Code&#39;]: &quot;, dic2.get(&#39;Code&#39;) # prints dic2[&#39;Code&#39;]: 002&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# has_keys returns true if the&amp;nbsp; key exists in the dictionary&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;if dic1.has_keys(&#39;Name&#39;):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&amp;nbsp;print &quot;The kay name exits&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;# keys() Returns list of dictionary keys.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;print dic1.keys()&lt;/span&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2015/10/blog-post.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNO69dJo3QAKoz1UeEKWp6IgQYBOhKwqNSLtJeLqgtY0T9PchwU_5OJe-z-DXK7amsvgb97YcE2Ypuygb2QINgBuMq004du35BpNp5h78dCLYlRWzFQ0NB06N1lApZn8wUEc5Np7fnSp6/s72-c/python.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-6901440721021393760</guid><pubDate>Thu, 08 Oct 2015 10:58:00 +0000</pubDate><atom:updated>2015-10-08T03:58:00.703-07:00</atom:updated><title>Download Microsoft Visual Studio 2015 Torrent Download.</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;color: #9fc5e8;&quot;&gt;&lt;b&gt;Visual Studio 2015 Enterprise ISO - Core-X&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://torcache.net/torrent/845B06793CAC0A6B6AF535694467BDCA04ABDF37.torrent?title=[kat.cr]visual.studio.2015.enterprise.iso.serial.keys.core.x&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #f1c232;&quot;&gt;Torrent Download Link&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;a href=&quot;magnet:?xt=urn:btih:845B06793CAC0A6B6AF535694467BDCA04ABDF37&amp;amp;dn=visual+studio+2015+enterprise+iso+serial+keys+core+x&amp;amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce&amp;amp;tr=udp%3A%2F%2Fopen.demonii.com%3A1337&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #ffd966;&quot;&gt;Magnet Link&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;Hash :&amp;nbsp;845B06793CAC0A6B6AF535694467BDCA04ABDF37&lt;/span&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2015/10/download-microsoft-visual-studio-2015.html</link><author>noreply@blogger.com (Subhroneel)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-7203592952036843308</guid><pubDate>Thu, 08 Oct 2015 09:21:00 +0000</pubDate><atom:updated>2015-10-08T02:21:17.338-07:00</atom:updated><title>Using ngView in AngularJS to create multiple page view.</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidNbY-oAbnNbGe27cEmXfBadDDUPG3gxpzXrA96tyjIHIEJH4-30jvV0DAptEC3iS2ISWal6Yu0r3Wxya2siNC6iVhxu46qQNss7wk_DNsT-AK-aBvMbCCJnezQJxtZIvHrgVCl_Cc1r2t/s1600/AngularJS-large.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;90&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidNbY-oAbnNbGe27cEmXfBadDDUPG3gxpzXrA96tyjIHIEJH4-30jvV0DAptEC3iS2ISWal6Yu0r3Wxya2siNC6iVhxu46qQNss7wk_DNsT-AK-aBvMbCCJnezQJxtZIvHrgVCl_Cc1r2t/s320/AngularJS-large.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;color: #9fc5e8;&quot;&gt;AngularJS is one of the leading JavaScript framework which is doing something simply awesome. Whenever we talk about &lt;b&gt;ngView&lt;/b&gt; we have to think about &lt;b&gt;routeConfig&lt;/b&gt; which is actually making multiple page views possible. So with &lt;b&gt;routeConfig&lt;/b&gt; we can embed a whole website into a single webpage. In this example we have not used multiple html page but rather used template to embed html document object into div block using &lt;b&gt;ngView. &lt;/b&gt;So you can try this code to embed as many template you like based on the key parameter you provide on your url. Route Config use a angular function &lt;b&gt;config&lt;/b&gt; which embed html block provided in the template with &lt;b&gt;.when&lt;/b&gt; and if any of the parameter key does not match then goes to &lt;b&gt;.otherwise &lt;/b&gt;where it automatically redirects it to a error page which displays an error message. Template of error key is also defined in .when.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;&amp;lt;html ng-app=&quot;app&quot;&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;script src=&quot;angular.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src=&quot;angular-route.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;app = angular.module(&#39;app&#39;,[&#39;ngRoute&#39;]);&lt;br /&gt;app.controller(&#39;MyCtrl&#39;,function($scope) {&lt;br /&gt;});&lt;br /&gt;app.config(function($routeProvider) {&lt;br /&gt;&amp;nbsp; $routeProvider&lt;br /&gt;&amp;nbsp; .when(&#39;/&#39;, {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; template: &#39;&amp;lt;h2&amp;gt;You are at the Welcome page&amp;lt;/h2&amp;gt;&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; controller: &#39;MyCtrl&#39; }&lt;br /&gt;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; .when(&#39;/Documents&#39;,{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; template: &#39;&amp;lt;h2&amp;gt;Read online tutorials&amp;lt;/h2&amp;gt;&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; controller: &#39;MyCtrl&#39; }&lt;br /&gt;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; .when(&#39;/Downloads&#39;,{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; template: &#39;&amp;lt;h2&amp;gt;Download utility software&amp;lt;/h2&amp;gt;&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; controller: &#39;MyCtrl&#39; }&lt;br /&gt;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; .when(&#39;/error&#39;,{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; template : &#39;&amp;lt;h2&amp;gt;Oops you have entered a wrong url&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; controller: &#39;MyCtrl&#39; }&lt;br /&gt;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; .otherwise( {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; redirectTo: &#39;/error&#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; );&lt;br /&gt;});&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body ng-controller=&quot;MyCtrl&quot;&amp;gt;&lt;br /&gt;&amp;lt;div ng-view&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2015/10/using-ngview-in-angularjs-to-create.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidNbY-oAbnNbGe27cEmXfBadDDUPG3gxpzXrA96tyjIHIEJH4-30jvV0DAptEC3iS2ISWal6Yu0r3Wxya2siNC6iVhxu46qQNss7wk_DNsT-AK-aBvMbCCJnezQJxtZIvHrgVCl_Cc1r2t/s72-c/AngularJS-large.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-3642814757176908546</guid><pubDate>Thu, 08 Oct 2015 07:59:00 +0000</pubDate><atom:updated>2015-10-08T00:59:48.580-07:00</atom:updated><title>Installing Apache Tomcat on MAC OSx</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHf5kx99IhER-lrsJ8qh9AjFjiX_t3lX8vN-1wmJJdrhXQPvhryt4N7akoI9MXbnYjyoWxdDxpXaZs5SXP3OiOulUFWVmE1Mhbb0z3sWbq8N3laVakYFJ3sOMfIhIEyOhxmzWuOR6AMdgS/s1600/apache-tomcat%255B1%255D.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;198&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHf5kx99IhER-lrsJ8qh9AjFjiX_t3lX8vN-1wmJJdrhXQPvhryt4N7akoI9MXbnYjyoWxdDxpXaZs5SXP3OiOulUFWVmE1Mhbb0z3sWbq8N3laVakYFJ3sOMfIhIEyOhxmzWuOR6AMdgS/s200/apache-tomcat%255B1%255D.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: #9fc5e8;&quot;&gt;Apache Tomcat is one of the most used web server.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #9fc5e8;&quot;&gt;Installing Apache Tomcat on MAC is as simple at it can be.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #9fc5e8;&quot;&gt;All you need is to download it from Apache Website.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #9fc5e8;&quot;&gt;Here we are downloading Apache Tomcat 8.0 version link to&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #9fc5e8;&quot;&gt;the tar.gz is provided here.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;http://www.us.apache.org/dist/tomcat/tomcat-8/v8.0.27/bin/apache-tomcat-8.0.27.tar.gz&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;download this and extract it. The best place to extract is /opt/.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;Create a directory called Tomcat8.0 on /opt/ and extract it there. You are all ready.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;To start the service manually navigate to this directory. /opt/Tomcat8.0/bin/startup.sh&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;and to shutdown manually /opt/Tomcat8.0/bin/shutdown.sh&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;To configure Tomcat to automatically start service at boot, configure launchd_wrapper.sh&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;or org.apache.tomcat.plist. Here is the github link for configuration of both the script.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;https://gist.github.com/mystix/661713.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;Remember the default port is 8080. You can change server.xml to change port number for&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;both normal and SSL (https) connection. BY default for http it is 8080 and for https it&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffd966;&quot;&gt;is 8443.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2015/10/installing-apache-tomcat-on-mac-osx.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHf5kx99IhER-lrsJ8qh9AjFjiX_t3lX8vN-1wmJJdrhXQPvhryt4N7akoI9MXbnYjyoWxdDxpXaZs5SXP3OiOulUFWVmE1Mhbb0z3sWbq8N3laVakYFJ3sOMfIhIEyOhxmzWuOR6AMdgS/s72-c/apache-tomcat%255B1%255D.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-5605594210163919577</guid><pubDate>Thu, 08 Oct 2015 07:35:00 +0000</pubDate><atom:updated>2015-10-08T00:35:05.300-07:00</atom:updated><title>Installing skype on Mac OSx Mavericks</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgegOtm4mO_uW_Q_zsCYRoJR-M3vz7uM9nWkA3BzYobgsfBt6V1pDNSOIEYuAM6HiUUVBwEMJyND9p7TrhLduXpdlAga2AX_7MbtJfzsfyo2GBfohHXAjcOYRECm8SNZkjij7onyee1yXOG/s1600/skype_Logo%255B1%255D.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgegOtm4mO_uW_Q_zsCYRoJR-M3vz7uM9nWkA3BzYobgsfBt6V1pDNSOIEYuAM6HiUUVBwEMJyND9p7TrhLduXpdlAga2AX_7MbtJfzsfyo2GBfohHXAjcOYRECm8SNZkjij7onyee1yXOG/s200/skype_Logo%255B1%255D.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #9fc5e8;&quot;&gt;Installing Skype in MAC OS x Mavericks.&lt;br /&gt;Skype is perhaps one of the best VOIP interface &lt;br /&gt;used by millions of people around the globe. Easy to &lt;br /&gt;use, easily importable contact lists from facebook or &lt;br /&gt;google. Making voice / video calls from Skype to skype, &lt;br /&gt;from skype to phone which is actually cost you. Send &lt;br /&gt;message or attach files&lt;/span&gt;.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;We will be installing skype in MAC OSX Mavericks.&lt;br /&gt;First thing you need to do is to download disk image &lt;br /&gt;from official skype website.&lt;br /&gt;&lt;br /&gt;Here is the link to download skype for MAC OSx&lt;br /&gt;http://www.skype.com/en/download-skype/skype-for-mac/downloading/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After download is complete file name will be something like this &lt;br /&gt;Skype_MajorVersion.MinorVersion.MinorVersion.SubVersion.dmg&lt;br /&gt;(i.e. Skype_7.13.428.dmg)&lt;br /&gt;Open the file from the download location and you will find 2&lt;br /&gt;icons shows side by side. One is the skype installer to be installed and another is the Application icon. Hold down and drag the skype icon &lt;br /&gt;to the application icon and your installation starts. After installation completes go to the application folder and drag the skype program icon to the launcher toolbar.&lt;br /&gt;&lt;br /&gt;Skype is ready to use.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2015/10/installing-skype-on-mac-osx-mavericks.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgegOtm4mO_uW_Q_zsCYRoJR-M3vz7uM9nWkA3BzYobgsfBt6V1pDNSOIEYuAM6HiUUVBwEMJyND9p7TrhLduXpdlAga2AX_7MbtJfzsfyo2GBfohHXAjcOYRECm8SNZkjij7onyee1yXOG/s72-c/skype_Logo%255B1%255D.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4858330053626945741.post-7130097878962612798</guid><pubDate>Thu, 01 Oct 2015 07:45:00 +0000</pubDate><atom:updated>2015-10-01T00:45:45.206-07:00</atom:updated><title>Universal Oracle data exporter using Visual Basic.</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA7o3zgb2yj0SYvVDbB0mOLFgi7rcmzRStXsENQn3V6-mhScj6WpYmnFMNIAfWd2cz3Op6tac8jY9Y2qR7YXbH2tk4LPDtTxZl6bq2Geou5wLv7n0yKWVEZffoQkyFoUVBTiHaH3Mp-ZvO/s1600/oracle_12c_db.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA7o3zgb2yj0SYvVDbB0mOLFgi7rcmzRStXsENQn3V6-mhScj6WpYmnFMNIAfWd2cz3Op6tac8jY9Y2qR7YXbH2tk4LPDtTxZl6bq2Geou5wLv7n0yKWVEZffoQkyFoUVBTiHaH3Mp-ZvO/s320/oracle_12c_db.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #9fc5e8;&quot;&gt;&lt;b&gt;&amp;nbsp;As soon as you click on connect the to section Export Tables&amp;nbsp; is enabled. If you select Sql from Export data for combo then right section will be enabled for custom sql. If you select Tables then list of tables for the user schema will be populated on the Combo. You can either select a single table or if you do not select any table then all tables will be exported when you click on Export, but if you select one table then that particular table will be exported.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB4Pq3RPoLKyjY_6BGD2LMFFeHDauFK4UaMiV12L3lxkIhlNsWu4gdXNGH_Korrubt9UDSY9POl0SEWXIwOSfF07KWzIE4b2ICQbR83-hR6aSQqqeUxFWMuz9YVvLp1Nv7UBwJIPeNWQxZ/s1600/oradataexport.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;193&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB4Pq3RPoLKyjY_6BGD2LMFFeHDauFK4UaMiV12L3lxkIhlNsWu4gdXNGH_Korrubt9UDSY9POl0SEWXIwOSfF07KWzIE4b2ICQbR83-hR6aSQqqeUxFWMuz9YVvLp1Nv7UBwJIPeNWQxZ/s320/oradataexport.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #9fc5e8;&quot;&gt;This is the interface from where data will be exported. The project is uploaded in google drive and code is provided in tis article.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #9fc5e8;&quot;&gt;Download the Code from -&amp;nbsp; &lt;a href=&quot;https://drive.google.com/file/d/0BznrW3lgX0ozdWNOcjJTUFA5TjA/view?usp=sharing&quot; target=&quot;_blank&quot;&gt;Google Drive&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #f1c232;&quot;&gt;Option Explicit&lt;br /&gt;Private con As Object&lt;br /&gt;Private rs As Object&lt;br /&gt;Private rs1 As Object&lt;br /&gt;Private table_name As String, fieldName As String, _&lt;br /&gt;recordString As String, fieldValue As String&lt;br /&gt;Private Sub cmdExportType_Click()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If cmdExportType.Text = &quot;Tables&quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; customExportFrame.Enabled = False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If cmbTableList.ListCount = 0 Then&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; Call populateListofTables&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmbTableList.Enabled = True&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; customExportFrame.Enabled = True&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmbTableList.Enabled = False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Command1_Click()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If cmdExportType.Text = &quot;Tables&quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call getListofTablesAndData&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call GetSqlData&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub cmdConnect_Click()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call OpenConnection(txtUser.Text, txtPasswd.Text, txtHostName.Text)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tableListFrame.Enabled = True&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdExportType.Clear&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdExportType.AddItem &quot;Tables&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdExportType.AddItem &quot;Sql&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tableListFrame.Enabled = False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; customExportFrame.Enabled = False&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub populateListofTables()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set rs1 = CreateObject(&quot;ADODB.Recordset&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs1.Open &quot;select table_name from cat where table_type = &#39;TABLE&#39; order by table_name&quot;, con&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmbTableList.Clear&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; While Not rs1.EOF&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmbTableList.AddItem VBA.IIf(IsNull(rs1(0)), &quot;&quot;, rs1(0))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs1.MoveNext&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoEvents&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wend&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs1.Close&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set rs1 = Nothing&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub getListofTablesAndData()&lt;br /&gt;&amp;nbsp;&amp;nbsp; Call GenerateTableData(cmbTableList.Text)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub GetSqlData()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim SqlStr As String, fieldString As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim rs1 As Object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Integer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SqlStr = txtSql.Text&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set rs1 = CreateObject(&quot;ADODB.RecordSet&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs1.Open SqlStr, con, 2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Open App.Path &amp;amp; &quot;\csv_data\&quot; &amp;amp; tblName.Text &amp;amp; &quot;.csv&quot; For Output As #1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldString = &quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 0 To rs1.Fields.Count - 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldString = fieldString &amp;amp; rs1(i).Name &amp;amp; &quot;,&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoEvents&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldString = VBA.Left(fieldString, VBA.Len(fieldString) - 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Print #1, fieldString&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; recordString = &quot;&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PBRecords.Value = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If rs1.RecordCount &amp;gt; 0 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PBRecords.Max = rs1.RecordCount&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While Not rs1.EOF&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; recordString = &quot;&quot;&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; For i = 0 To rs1.Fields.Count - 1&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; fieldValue = VBA.IIf(IsNull(rs1(i)), &quot;&quot;, rs1(i))&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; fieldValue = VBA.Replace(fieldValue, &quot;,&quot;, &quot; &quot;)&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; recordString = recordString &amp;amp; fieldValue &amp;amp; &quot;,&quot;&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; DoEvents&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; Next i&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; recordString = VBA.Left$(recordString, VBA.Len(recordString) - 1)&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; Print #1, recordString&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; DoEvents&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; rs1.MoveNext&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; PBRecords.Value = PBRecords.Value + 1&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; lblRecords.Caption = Round((PBRecords.Value / PBRecords.Max) * 100, 2) &amp;amp; &quot;%&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wend&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Close #1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs1.Close&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub OpenConnection(user As String, pass As String, serviceName As String)&lt;br /&gt;&amp;nbsp;&amp;nbsp; On Error GoTo OpenConnection_Error&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If con Is Nothing Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set con = CreateObject(&quot;ADODB.Connection&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con.CursorLocation = adUseClient&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con.ConnectionString = &quot;Provider=MSDAORA.1;User ID=&quot; &amp;amp; user &amp;amp; &quot;;Password=&quot; &amp;amp; pass &amp;amp; &quot;;Data Source=&quot; &amp;amp; serviceName &amp;amp; &quot;;Persist Security Info=False&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con.Open&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; On Error GoTo 0&lt;br /&gt;&amp;nbsp;&amp;nbsp; Exit Sub&lt;br /&gt;&lt;br /&gt;OpenConnection_Error:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox &quot;Error &quot; &amp;amp; Err.Number &amp;amp; &quot; (&quot; &amp;amp; Err.Description &amp;amp; &quot;) in procedure OpenConnection of Form Form1&quot;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub OpenConnections(userName As String, passwd As String, dataSource As String)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If con Is Nothing Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set con = CreateObject(&quot;ADODB.Connection&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con.CursorLocation = adUseClient&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con.ConnectionString = &quot;Provider=MSDAORA.1;User ID=&quot; &amp;amp; userName &amp;amp; &quot;;Password=&quot; &amp;amp; passwd &amp;amp; _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;;Data Source=&quot; &amp;amp; dataSource &amp;amp; &quot;;Persist Security Info=False&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con.Open&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Private Sub GenerateTableData(Optional singleTable As String)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Integer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If rs Is Nothing Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set rs = CreateObject(&quot;ADODB.Recordset&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set rs1 = CreateObject(&quot;ADODB.Recordset&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs.Open &quot;select * from cat where table_type = &#39;TABLE&#39;&quot; &amp;amp; VBA.IIf(singleTable &amp;lt;&amp;gt; &quot;&quot;, _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot; and table_name = &#39;&quot; &amp;amp; singleTable &amp;amp; &quot;&#39;&quot;, &quot;&quot;), con&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PBTables.Value = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PBTables.Max = rs.RecordCount&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While Not rs.EOF&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; &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; table_name = VBA.IIf(IsNull(rs(0)), &quot;&quot;, rs(0))&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; Form1.Caption = &quot;Exporting data for &quot; &amp;amp; table_name &amp;amp; &quot; table &quot;&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; If VBA.Trim$(table_name) &amp;lt;&amp;gt; &quot;&quot; Then&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; Open App.Path &amp;amp; &quot;\csv_data\&quot; &amp;amp; table_name &amp;amp; &quot;.csv&quot; For Output As #1&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; rs1.Open &quot;select * from &quot; &amp;amp; table_name, con, 1&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; fieldName = &quot;&quot;&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; For i = 0 To rs1.Fields.Count - 1&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; fieldName = fieldName &amp;amp; rs1(i).Name &amp;amp; &quot;,&quot;&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; DoEvents&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; Next i&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; fieldName = VBA.Left$(fieldName, VBA.Len(fieldName) - 1)&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; Print #1, fieldName&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; PBRecords.Value = 0&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; If rs1.RecordCount &amp;gt; 0 Then&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; PBRecords.Max = rs1.RecordCount&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; While Not rs1.EOF&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; recordString = &quot;&quot;&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; For i = 0 To rs1.Fields.Count - 1&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; &#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldValue = getValue(rs1, i, table_name, PBTables.Value + 1)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldValue = VBA.Replace(fieldValue, &quot;,&quot;, &quot; &quot;)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; recordString = recordString &amp;amp; fieldValue &amp;amp; &quot;,&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoEvents&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; Next i&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; recordString = VBA.Left$(recordString, VBA.Len(recordString) - 1)&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; Print #1, recordString&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; DoEvents&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; rs1.MoveNext&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; PBRecords.Value = PBRecords.Value + 1&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; lblRecords.Caption = Round((PBRecords.Value / PBRecords.Max) * 100, 2) &amp;amp; &quot;%&quot;&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; lblRecords.Refresh&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; Wend&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; PBTables.Value = PBTables.Value + 1&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; lblTables.Caption = Round((PBTables.Value / PBTables.Max) * 100, 2) &amp;amp; &quot;%&quot;&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; lblTables.Refresh&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; End If&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; Close #1&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; rs1.Close&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; End If&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; DoEvents&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; rs.MoveNext&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wend&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set rs = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set rs1 = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Function getValue(r As Object, ByVal idx As Long, ByVal tbl_name As String, recNo As Long) As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error GoTo Err1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; getValue = VBA.IIf(IsNull(r(idx).Value), &quot;&quot;, r(idx).Value)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Function&lt;br /&gt;Err1:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Open App.Path &amp;amp; &quot;\errLog.log&quot; For Append As #2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Print #2, &quot;Error on &quot; &amp;amp; tbl_name &amp;amp; &quot; table on column &quot; &amp;amp; VBA.IIf(IsNull(r(idx).Name), &quot;&quot;, r(idx).Name) &amp;amp; &quot;, index &quot; &amp;amp; idx &amp;amp; &quot; on record number &quot; &amp;amp; recNo &amp;amp; &quot; whose column &quot; &amp;amp; VBA.IIf(IsNull(r(0).Name), &quot;&quot;, r(0).Name) &amp;amp; &quot; value is &quot; &amp;amp; VBA.IIf(IsNull(r(0).Value), &quot;&quot;, r(0).Value)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Close #2&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Private Sub GetLatLongData()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call OpenConnections(&quot;bckv&quot;, &quot;bckv&quot;, &quot;ORCL&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Open App.Path &amp;amp; &quot;\lat_long.csv&quot; For Input As #1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim newLine As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim var&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Line Input #1, newLine&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; While Not EOF(1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Line Input #1, newLine&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var = VBA.Split(newLine, &quot;,&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call con.Execute(&quot;insert into citieslatlong (City,ProvinceState,Country,Latitude,Longitude) &quot; &amp;amp; _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;values(&#39;&quot; &amp;amp; VBA.Replace(var(0), &quot;&#39;&quot;, &quot;&#39;&#39;&quot;) &amp;amp; &quot;&#39;,&#39;&quot; &amp;amp; VBA.Replace(var(1), &quot;&#39;&quot;, &quot;&#39;&#39;&quot;) &amp;amp; &quot;&#39;,&#39;&quot; &amp;amp; VBA.Replace(var(2), &quot;&#39;&quot;, &quot;&#39;&#39;&quot;) &amp;amp; &quot;&#39;,&#39;&quot; &amp;amp; VBA.Replace(var(3), &quot;&#39;&quot;, &quot;&#39;&#39;&quot;) &amp;amp; &quot;&#39;,&#39;&quot; &amp;amp; VBA.Replace(var(4), &quot;&#39;&quot;, &quot;&#39;&#39;&quot;) &amp;amp; &quot;&#39;)&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wend&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Close #1&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub txtHostName_Change()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdConnect.Enabled = (txtUser.Text &amp;lt;&amp;gt; &quot;&quot; And txtPasswd.Text &amp;lt;&amp;gt; &quot;&quot; And txtHostName.Text &amp;lt;&amp;gt; &quot;&quot;)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub txtPasswd_Change()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdConnect.Enabled = (txtUser.Text &amp;lt;&amp;gt; &quot;&quot; And txtPasswd.Text &amp;lt;&amp;gt; &quot;&quot; And txtHostName.Text &amp;lt;&amp;gt; &quot;&quot;)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub txtUser_Change()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdConnect.Enabled = (txtUser.Text &amp;lt;&amp;gt; &quot;&quot; And txtPasswd.Text &amp;lt;&amp;gt; &quot;&quot; And txtHostName.Text &amp;lt;&amp;gt; &quot;&quot;)&lt;br /&gt;End Sub&lt;/span&gt;&lt;/div&gt;
</description><link>http://techgigsonline.blogspot.com/2015/10/universal-oracle-data-exporter-using.html</link><author>noreply@blogger.com (Subhroneel)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA7o3zgb2yj0SYvVDbB0mOLFgi7rcmzRStXsENQn3V6-mhScj6WpYmnFMNIAfWd2cz3Op6tac8jY9Y2qR7YXbH2tk4LPDtTxZl6bq2Geou5wLv7n0yKWVEZffoQkyFoUVBTiHaH3Mp-ZvO/s72-c/oracle_12c_db.png" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>