<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: oracle code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sat, 17 May 2008 19:30:16 GMT</pubDate>
    <description>DZone Snippets: oracle code</description>
    <item>
      <title>Excel VBA : read registry key values on a remote computer using WMI</title>
      <link>http://snippets.dzone.com/posts/show/4675</link>
      <description>// VBA code to paste in an module&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Function ORACLEHOMES(strComputer As String)&lt;br /&gt;    Const HKEY_LOCAL_MACHINE = &amp;H80000002&lt;br /&gt;    ORACLEHOMES = ""&lt;br /&gt;    Dim strKeyPath&lt;br /&gt;    Dim arrSubKeys&lt;br /&gt;    Dim oReg&lt;br /&gt;    Dim strValueName&lt;br /&gt;    Dim strValue&lt;br /&gt;    'strComputer = "."&lt;br /&gt;    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &amp; strComputer &amp; "\root\default:StdRegProv")&lt;br /&gt;    strKeyPath = "SOFTWARE\ORACLE"&lt;br /&gt;    oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys&lt;br /&gt;    For Each subkey In arrSubKeys&lt;br /&gt;        If Left(subkey, 4) = "KEY_" Then&lt;br /&gt;            strValueName = "ORACLE_HOME"&lt;br /&gt;            oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath &amp; "\" &amp; subkey, strValueName, strValue&lt;br /&gt;            If ORACLEHOMES = "" Then&lt;br /&gt;                ORACLEHOMES = strValue&lt;br /&gt;            Else&lt;br /&gt;                ORACLEHOMES = ORACLEHOMES &amp; ";" &amp; strValue&lt;br /&gt;            End If&lt;br /&gt;        End If&lt;br /&gt;    Next&lt;br /&gt;End Function&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 19 Oct 2007 12:03:49 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4675</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
    <item>
      <title>Excel : Make a query on a Oracle database and return the result (useful for sheet formulas)</title>
      <link>http://snippets.dzone.com/posts/show/4518</link>
      <description>// This should be pasted in a module of the workbook&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Function ORAQUERY(strHost As String, strDatabase As String, strSQL As String, strUser As String, strPassword As String)&lt;br /&gt;  Dim strConOracle, oConOracle, oRsOracle&lt;br /&gt;  Dim StrResult As String&lt;br /&gt;  &lt;br /&gt;  StrResult = ""&lt;br /&gt;  &lt;br /&gt;  strConOracle = "Driver={Microsoft ODBC for Oracle}; " &amp; _&lt;br /&gt;         "CONNECTSTRING=(DESCRIPTION=" &amp; _&lt;br /&gt;         "(ADDRESS=(PROTOCOL=TCP)" &amp; _&lt;br /&gt;         "(HOST=" &amp; strHost &amp; ")(PORT=1521))" &amp; _&lt;br /&gt;         "(CONNECT_DATA=(SERVICE_NAME=" &amp; strDatabase &amp; "))); uid=" &amp; strUser &amp; " ;pwd=" &amp; strPassword &amp; ";"&lt;br /&gt;  Set oConOracle = CreateObject("ADODB.Connection")&lt;br /&gt;  Set oRsOracle = CreateObject("ADODB.Recordset")&lt;br /&gt;  oConOracle.Open strConOracle&lt;br /&gt;  Set oRsOracle = oConOracle.Execute(strSQL)&lt;br /&gt;  Do While Not oRsOracle.EOF&lt;br /&gt;      If StrResult &lt;&gt; "" Then&lt;br /&gt;        StrResult = StrResult &amp; Chr(10) &amp; oRsOracle.Fields(0).Value&lt;br /&gt;      Else&lt;br /&gt;        StrResult = oRsOracle.Fields(0).Value&lt;br /&gt;      End If&lt;br /&gt;    oRsOracle.MoveNext&lt;br /&gt;  Loop&lt;br /&gt;  oConOracle.Close&lt;br /&gt;  Set oRsOracle = Nothing&lt;br /&gt;  Set oConOracle = Nothing&lt;br /&gt;  ORAQUERY = StrResult&lt;br /&gt;End Function&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 10 Sep 2007 15:26:22 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4518</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
    <item>
      <title>create and call an oracle function</title>
      <link>http://snippets.dzone.com/posts/show/4109</link>
      <description>&lt;code&gt;&lt;br /&gt;create or replace function "ORACLE_FOO"&lt;br /&gt;(foo_arg1 in NUMBER)&lt;br /&gt;return NUMBER&lt;br /&gt;is&lt;br /&gt;rt NUMBER := 0;&lt;br /&gt;begin&lt;br /&gt;  IF foo_arg1 &gt; 1 THEN&lt;br /&gt;    SELECT 1 INTO rt;&lt;br /&gt;  ELSE&lt;br /&gt;    SELECT 2 INTO rt;&lt;br /&gt;  END IF;&lt;br /&gt;  RETURN (rt);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;SELECT ORACLE_FOO(1) FROM dual;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 06 Jun 2007 21:22:16 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4109</guid>
      <author>davetrane (David Davis)</author>
    </item>
    <item>
      <title>Debug logs in the database</title>
      <link>http://snippets.dzone.com/posts/show/4077</link>
      <description>How to log things in the database&lt;br /&gt;&lt;br /&gt;Create the table:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;create table TMP_LOG (HORA date, ENTRADA varchar(4000));&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Write the things I need to the table:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;INSERT INTO TMP_LOG (HORA, ENTRADA) VALUES(SYSDATE, &lt;br /&gt;  'V_NOM_DESTINATARIO1: '||V_NOM_DESTINATARIO1||', V_DOM_DESTINATARIO1: '||V_DOM_DESTINATARIO1||&lt;br /&gt;  ', P_NOM_DESTINATARIO_2: '||P_NOM_DESTINATARIO_2||', P_DOM_DESTINATARIO_2: '||P_DOM_DESTINATARIO_2||&lt;br /&gt;  ', B_DESTINATARIO: '||B_DESTINATARIO||&lt;br /&gt;  ', V_NOM_DESTINATARIO2: '||V_NOM_DESTINATARIO2||', V_DOM_DESTINATARIO2: '||V_DOM_DESTINATARIO2);&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Consult the things written:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;select * from tmp_log order by hora desc;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Dont forget to drop it at the end:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;drop table TMP_LOG;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;</description>
      <pubDate>Wed, 30 May 2007 16:59:19 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4077</guid>
      <author>koke24 (Koke)</author>
    </item>
    <item>
      <title>Mostar los resultados de un cursor</title>
      <link>http://snippets.dzone.com/posts/show/3954</link>
      <description>Esto muestra los resultados de un cursor en la ventana de pruebas del SQL Developer&lt;br /&gt;&lt;br /&gt;Declaraci&#243;n de las variables&lt;br /&gt;&lt;code&gt;&lt;br /&gt;c1 varchar2(200);&lt;br /&gt;c2 varchar2(200);&lt;br /&gt;c3 varchar2(200);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;C&#243;digo en s&#237;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;fetch v_Return into c1, c2, c3;&lt;br /&gt;loop&lt;br /&gt;  EXIT WHEN v_Return%NOTFOUND;&lt;br /&gt;  DBMS_OUTPUT.PUT_LINE(c1||', '||c2||', '||c3);&lt;br /&gt;  fetch v_Return into c1, c2, c3;&lt;br /&gt;end loop;&lt;br /&gt;close v_Return;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo del c&#243;digo completo:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;DECLARE&lt;br /&gt;  PVCOD_DESPACHO NUMBER;&lt;br /&gt;  PVCOD_IDIOMA VARCHAR2(200);&lt;br /&gt;  v_Return PG_SGIE_Types.cursor_type;&lt;br /&gt;  c1 varchar2(200);&lt;br /&gt;  c2 varchar2(200);&lt;br /&gt;  c3 varchar2(200);&lt;br /&gt;BEGIN&lt;br /&gt;  PVCOD_DESPACHO := 2792;&lt;br /&gt;  PVCOD_IDIOMA := '1';&lt;br /&gt;&lt;br /&gt;  v_Return := FU_LISTAENVIOSDESPACHO(&lt;br /&gt;    PVCOD_DESPACHO =&gt; PVCOD_DESPACHO,&lt;br /&gt;    PVCOD_IDIOMA =&gt; PVCOD_IDIOMA&lt;br /&gt;  );&lt;br /&gt;  -- Modify the code to output the variable&lt;br /&gt;  --DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);&lt;br /&gt;  &lt;br /&gt;  fetch v_Return into c1, c2, c3;&lt;br /&gt;  loop&lt;br /&gt;    EXIT WHEN v_Return%NOTFOUND;&lt;br /&gt;    DBMS_OUTPUT.PUT_LINE(c1||', '||c2||', '||c3);&lt;br /&gt;    fetch v_Return into c1, c2, c3;&lt;br /&gt;  end loop;&lt;br /&gt;  close v_Return;&lt;br /&gt;END;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 04 May 2007 10:04:24 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3954</guid>
      <author>koke24 (Koke)</author>
    </item>
    <item>
      <title>[Oracle] Very simple way to recreate a table with contents between schemas</title>
      <link>http://snippets.dzone.com/posts/show/3840</link>
      <description>User must have both schema permissions to execute this query&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;CREATE TABLE schema.table AS SELECT * FROM schema.table&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 19 Apr 2007 11:20:55 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3840</guid>
      <author>dirtyaffairs (Dirty Affairs)</author>
    </item>
    <item>
      <title>Change sessions, transaction and processes parameters in Oracle 10g</title>
      <link>http://snippets.dzone.com/posts/show/3266</link>
      <description>&lt;code&gt;&lt;br /&gt;alter system set PROCESSES=100 scope=SPFILE;&lt;br /&gt;alter system set TRANSACTIONS=126 scope=SPFILE;&lt;br /&gt;alter system set SESSIONS=115 scope=SPFILE;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 10 Jan 2007 16:23:22 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3266</guid>
      <author>dirtyaffairs (Dirty Affairs)</author>
    </item>
    <item>
      <title>Session and License information in Oracle</title>
      <link>http://snippets.dzone.com/posts/show/3261</link>
      <description>&lt;code&gt;&lt;br /&gt;select name, value from v$parameter where name like LOWER('%license%') ;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;select name, value from v$parameter where name like LOWER('%session%') ;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 09 Jan 2007 15:55:23 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3261</guid>
      <author>dirtyaffairs (Dirty Affairs)</author>
    </item>
    <item>
      <title>Switch Oracle CLOB to VARCHAR2</title>
      <link>http://snippets.dzone.com/posts/show/3022</link>
      <description>This rake task creates a database script to change all Oracle CLOB columns to VARCHAR2 columns.&lt;br /&gt;&lt;br /&gt;Changing Oracle CLOBs to VARCHAR2s can result in a huge performance increase, especially if the database and app servers are not close together on the network.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;namespace :db do&lt;br /&gt;  task :fix_clobs =&gt; [:environment] do |t|&lt;br /&gt;    @outfile = File.expand_path(File.join(RAILS_ROOT,"db","fix_clobs.sql"))&lt;br /&gt;  &lt;br /&gt;    File.open(@outfile, "w") do |file|&lt;br /&gt;      ActiveRecord::Base.connection.tables.each do |table_name|&lt;br /&gt;        begin&lt;br /&gt;          model = eval(table_name.classify)&lt;br /&gt;          model.columns.each do |column|&lt;br /&gt;            if column.sql_type == "CLOB"&lt;br /&gt;              file.write("ALTER TABLE #{table_name} ADD #{column.name}_temp VARCHAR2(4000);\n")&lt;br /&gt;              file.write("UPDATE #{table_name} SET #{column.name}_temp = #{column.name};\n")&lt;br /&gt;              file.write("COMMIT;\n")&lt;br /&gt;              file.write("ALTER TABLE #{table_name} DROP COLUMN #{column.name};\n")&lt;br /&gt;              file.write("ALTER TABLE #{table_name} RENAME COLUMN #{column.name}_temp TO #{column.name};\n")&lt;br /&gt;              file.write("\n")&lt;br /&gt;            end&lt;br /&gt;          end&lt;br /&gt;         rescue =&gt; ex&lt;br /&gt;           puts "Failed for #{table_name} with #{ex.class}"&lt;br /&gt;         end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 20 Nov 2006 08:23:21 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3022</guid>
      <author>dcmanges (Dan Manges)</author>
    </item>
    <item>
      <title>Adjust Database Sequences</title>
      <link>http://snippets.dzone.com/posts/show/3021</link>
      <description>If loading data through fixtures or other means with hard-coded IDs, database sequences may need to be adjusted.  This is written for Oracle.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;namespace :db do&lt;br /&gt;  task :adjust_sequences =&gt; :environment do&lt;br /&gt;    ActiveRecord::Base.connection.tables.each do |table|&lt;br /&gt;      begin&lt;br /&gt;        count = ActiveRecord::Base.count_by_sql("SELECT MAX(id) FROM #{table}")&lt;br /&gt;        seq = "#{table}_seq"&lt;br /&gt;        ActiveRecord::Base.connection.execute("DROP SEQUENCE #{seq}")&lt;br /&gt;        ActiveRecord::Base.connection.execute("CREATE SEQUENCE #{seq} START WITH #{count+1}")&lt;br /&gt;      rescue =&gt; ex&lt;br /&gt;        puts "Failed for #{table} with #{ex.class}"&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 20 Nov 2006 07:22:13 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3021</guid>
      <author>dcmanges (Dan Manges)</author>
    </item>
  </channel>
</rss>
