TABLE OF CONTENTS 1) POP QUIZ (answer at the end) 2) Oracle/PeopleSoft Webcast 3) Oracle Professional 4) SQL Tip 5) In the News 6) ANSWER TO THE POP QUIZ --------------------------------------------------------- 1) POP QUIZ (answer at the end) --------------------------------------------------------- What is AUTHID used for in PL/SQL? --------------------------------------------------------- 2) Oracle/PeopleSoft Webcast --------------------------------------------------------- Oracle is planning a Live Webcast to officially announce the integration plan of Oracle and PeopleSoft. This will take place Tuesday, January 18th from 9:30 a.m. to 1:00 p.m. PST. For more information, please visit: http://www.oracle.com/peoplesoft/launch_18jan05.html --------------------------------------------------------- 3) Oracle Professional --------------------------------------------------------- In the upcoming issue of Oracle Professional, World renowned Oracle expert Steven Feuerstein explains the various ways to return result sets through PL/SQL interfaces in the first of a 2 part series. PLEASE COMPLETE. Here’s how you can access Oracle Professional: http://www.pinpub.com/op/ --------------------------------------------------------- 4) SQL Tip --------------------------------------------------------- Oracle 10g introduced the ability for user-defined quote characters. How can we use this? Well, prior to Oracle 10g, if you wanted to include quotes in text, you had to ‘escape’ the quote with another quote such as: SELECT ‘Pinnacle’’s p’’s and q’’s text’ from dual; Now with Oracle 10g, you can re-write this as: SELECT Q‘$Pinnacle’s p’s and q’s text$’ from dual; Note that the quoted strings starts with the letter Q, followed by a single quote and the new quote character. It ends with the new quote character and a single quote. I’ve used a dollar sign ($) as my quote character, but you can use other characters if you’d like. Now you can put any quoted text in between your quote characters. You can use this in PL/SQL as well, as I do below: CREATE or REPLACE PROCEDURE proc_test (pi_name VARCHAR2) IS begin DBMS_OUTPUT.PUT_LINE(‘Name is: ‘||pi_name); end; / Then I invoke the procedure in an anonymous block such as: DECLARE l_var varchar2(100):= Q‘$Pinnacle’s p’s and q’s text$’; BEGIN proc_test(l_var); END; / The output is: Name is: Pinnacle’s p’s and q’s text Let me know if you find other uses for this new Oracle 10g feature. -------------------------------------------------------- 5) In the News -------------------------------------------------------- It’s official! Oracle has acquired PeopleSoft for $26.50 per share ending an 18 month hostile battle. As of Jan 4th, stockholders had tendered approximated 89% of PeopleSoft’s outstanding stock. Oracle is expecting to have at least 90% of the tendered stock by the January 6, 2005 subsequent offering period, which will allow them to carry out an expedited second-step merger, as permitted by Delaware law. Oracle has since appointed 4 people to the PeopleSoft Board and replaced 4 executive positions at PeopleSoft with 4 of its own Officers. * * * * BEA Systems recently acquired Incomit, a privately held Swedish company specializing in Telco Infrastructure software. This is the 5th acquisition by BEA in 2 years and is expected to augment the BEA WebLogic Service Delivery Platform, BEA's telecommunications solution framework. To read more about this, visit: http://biz.yahoo.com/prnews/050105/sfw096_1.html * * * * --------------------------------------------------------- 6) ANSWER TO THE POP QUIZ --------------------------------------------------------- AUTHID is part of the CREATE PROCEDURE syntax. The AUTHID clause determines whether a stored procedure executes with the privileges of its owner (the default) or current user and whether its unqualified references to schema objects are resolved in the schema of the owner or current user. By default, stored procedures execute with the privileges of their owner, not the current user. This is referred to as Definer Rights. Invoker Rights can be initiated by using the AUTHID CURRENT_USER statement during the CREATE PROCEDURE command such as: CREATE OR REPLACE PROCEDURE PROC_PIN_TEST AUTHID CURRENT_USER AS BEGIN DELETE FROM EMPLOYEE WHERE EMP_ID = 1; END; / Now, if you grant the EXCECUTE privilege to this procedure to another user and they run the procedure, it will delete from the local user’s EMPLOYEE table if one exists instead of deleting from the table in the account in which the procedure was created.