Friday, 30 January 2009

Oracle : Display refcursor content in SqlPlus or Toad

Proc to xml-ify the refcursor

create or replace procedure refcursor_print (p_refcursor in sys_refcursor,
                 p_null_handling in number := 0)
as
  l_xml      xmltype;
  l_context  dbms_xmlgen.ctxhandle;
  l_clob     clob;

  l_null_self_argument_exc exception;
  pragma exception_init (l_null_self_argument_exc, -30625);
 
  procedure print (p_msg in varchar2)
  as
    l_text varchar2(32000) := p_msg;
  begin
    loop
      exit when l_text is null;
      dbms_output.put_line(substr(l_text,1,250));
      l_text:=substr(l_text, 251);
    end loop;
  end print;
begin
  /*
  Purpose:    print debug information (ref cursor)
  Remarks:    outputs weakly typed cursor as XML
  */

  /* get a handle on the ref cursor */
  l_context:=dbms_xmlgen.newcontext (p_refcursor);
  /*
  # DROP_NULLS CONSTANT NUMBER:= 0; (Default) Leaves out the tag for NULL elements.
  # NULL_ATTR CONSTANT NUMBER:= 1; Sets xsi:nil="true".
  # EMPTY_TAG CONSTANT NUMBER:= 2; Sets, for example, <foo/>.
  */
  /* how to handle null values */
  dbms_xmlgen.setnullhandling (l_context, p_null_handling);
  /* create XML from ref cursor */
  l_xml:=dbms_xmlgen.getxmltype (l_context, dbms_xmlgen.none);

  print('Number of rows in ref cursor: ' || dbms_xmlgen.getnumrowsprocessed (l_context));
 
  begin
    l_clob:=l_xml.getclobval();
    print('Size of XML document (anything over 32K will be truncated): ' || length(l_clob));
    print(substr(l_clob,1,32000));
  exception
    when l_null_self_argument_exc then
       print('Empty dataset.');
  end;
end ;

Call like this
Nb returns a refcursor into c1
Output via dbms_output

c1 sys_refcursor;

begin
   get_refcursor_with_some_params('X1001',TO_DATE('12/02/2008','DD/MM/YYYY'),c1);
  refcursor_print(c1);
end;


Wednesday, 28 January 2009

Rdesktop under linux into a Cisco VPN

  • Using Centos 5.2 - need to add additional repos to find a copy of kvpnc (?)
  • Correct version of packages (vpnc-0.3.3-1.2.el5.rf, kvpnc-0.8.8-1.el5.rf)
  • Need kde
  • Watch out for later version of vpnc (0.5+) being incompatible with syntax used by kvpnc - downgraded to get them to match 
  • Run kpvnc and import .pcf file to set up a new connection definition
  • Had some problems with Perfect Foward Secrecy being passed as a parameter to vpnc and vpnc not understanding - can be turned off via Profile->General->Advanced->PFS
  • Edit /etc/vpnc.conf to be something like
### This is the gateway configuration
IPSec gateway
IPSec ID
IPSec secret

### Put your username here
Xauth username
Xauth password

  • Install rdesktop
  • Use a command like "rdesktop  -u \\ -p -f -a 16 -k en-uk MACHINE
  • -f is fullscreen mode - use Ctrl-Alt-Enter to get out
  • On vmware this would be Ctrl-Alt-(Space-then-Enter) holding down Ctrl-Alt the whole time

Misc
Putty - selection cursor shows up black on black - change the mouse pointer on the remote machine to something more usable (Control panel -> Mouse->Pointers Tab->Text Selection)


Friday, 23 January 2009

Conficker related links


Stopping Autorun
http://nick.brown.free.fr/blog/2007/10/memory-stick-worms.html

How to disable the use of USBs (MS)
http://support.microsoft.com/kb/823732


Monday, 19 January 2009

Windows: Remote query for installed patches

wmic /user:Administrator /password:,password> /node:"spread-00811" qfe | find /N "KB958644"

Windows : Remote registry query/changes

reg query \\SPREAD-01058\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL /s

Windows: Admin command window via Runas

runas /user:odl\administrator cmd

Thursday, 15 January 2009

Oracle: DBCA template reverse engineering problem solved


Silent create template
dbca -createTemplateFromDB -sourceDB lontestdb02:1521:NEWDEV4 -templateName ZPFL1 -sysDBAUserName sys -sysDBAPassword password -maintainFileLocations false -silent


Problem
When using the DBCA to create a RAC database when selecting next on the node selection screen are
receiving the following error:

java.security.AccessControlException: access denied (java.sql.SQLPermission setLog)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:270)
at
java.security.AccessController.checkPermission(AccessController.java:401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
at java.sql.DriverManager.setLogStream(DriverManager.java:392)

Cause

The problem is that the user (oracle user) which use the DBCA does not have the permission to use the java packages for the RAC environment across the nodes. To create a file which set the permissions it will be checked and used to perform the action needed to be able to create the instances across the nodes

Fix

Create the file:

.java.policy on each node in the Oracle Users Home directory.

containing the following code.

grant {
permission java.security.AllPermission;
};

When done, changed the permission to 770 for the .java.policy file for the files/nodes
Start the DBCA again.

Template created in $ORACLE_HOME/dbca