Thursday, November 29, 2007

How to capture the IP Address of the Oracle client making the data request

The key player is SYS_CONTEXT as in:

Select SYS_CONTEXT('USERENV','IP_ADDRESS') FROM dual


Here's a trigger that captures the ip addresses of clients deleting rows from a table:

CREATE OR REPLACE TRIGGER "MYSCHEMA"."SESSIONWATCHER" BEFORE

DELETE ON "MYSCHEMA"."CURRENTUSERSESSION" DECLARE

SInfo MYSCHEMA.SESSIONHISTORY.INFO%TYPE;
BEGIN
SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') INTO SInfo FROM dual;
INSERT INTO MYSCHEMA.SESSIONHISTORY VALUES (SInfo);
END SessionWatcher;

C# Sucks!

JK!! Seriously, though, somewhere around C#-3 we should have inculcated ourselves with the question: "Does 'CAN' == 'SHOULD...