Home » SQL & PL/SQL » SQL & PL/SQL » Need help with a PL/SQL Procedure
Need help with a PL/SQL Procedure [message #7295] Tue, 03 June 2003 05:52 Go to next message
Sekhi
Messages: 2
Registered: June 2003
Junior Member
HI,

I need help in creating a PL/SQL Block which accepts DATE as input from the user & updates the date part to a DATE column retaining the earlier time part on that DATE column.

Thanks in advance,

Regards
Sekhi
Re: Need help with a PL/SQL Procedure [message #7296 is a reply to message #7295] Tue, 03 June 2003 06:22 Go to previous messageGo to next message
Art Metzer
Messages: 2480
Registered: December 2002
Senior Member
quote from Sekhi:
----------------------------------------------------------------------
HI,

I need help in creating a PL/SQL Block which accepts DATE as input from the user & updates the date part to a DATE column retaining the earlier time part on that DATE column.

Thanks in advance,

Regards
Sekhi

----------------------------------------------------------------------
This is one way:
SQL> CREATE TABLE t (id NUMBER, d DATE);
  
Table created.
  
SQL> INSERT INTO t VALUES (101, TO_DATE('01/31/2003 04:38:12 PM'
  2                             ,       'MM/DD/YYYY HH:MI:SS AM'));
  
1 row created.
  
SQL> COMMIT;
  
Commit complete.
  
SQL> SELECT TO_CHAR(d
  2         ,       'fmMM/DD/YYYY HH12:fmMI:SS AM') db_date
  3  FROM   t;     
  
DB_DATE
----------------------
1/31/2003 4:38:12 PM
   
SQL> BEGIN
  2      UPDATE t
  3      SET    d = d
  4                 + (TRUNC(TO_DATE('&1'
  5                          ,       'DD-MON-YYYY'))
  6                    -
  7                    TRUNC(d))
  8      WHERE  id = 101;
  9  END;
 10  /
Enter value for 1: 03-JUN-2003
old   4:                + (TRUNC(TO_DATE('&1'
new   4:                + (TRUNC(TO_DATE('03-JUN-2003'
  
PL/SQL procedure successfully completed.
  
SQL> SELECT TO_CHAR(d
  2         ,       'fmMM/DD/YYYY HH12:fmMI:SS AM') db_date
  3  FROM   t;  
    
DB_DATE
----------------------
6/3/2003 4:38:12 PM
  
SQL> BEGIN
  2      UPDATE t
  3      SET    d = d
  4                 + (TRUNC(TO_DATE('&1'
  5                          ,       'DD-MON-YYYY'))
  6                    -
  7                    TRUNC(d))
  8      WHERE  id = 101;
  9  END;
 10  /
Enter value for 1: 11-DEC-2002
old   4:                + (TRUNC(TO_DATE('&1'
new   4:                + (TRUNC(TO_DATE('11-DEC-2002'
  
PL/SQL procedure successfully completed.
  
SQL> SELECT TO_CHAR(d
  2         ,       'fmMM/DD/YYYY HH12:fmMI:SS AM') db_date
  3  FROM   t;   
  
DB_DATE
----------------------
12/11/2002 4:38:12 PM
  
SQL> 
HTH,

A
Re: Need help with a PL/SQL Procedure [message #7297 is a reply to message #7296] Tue, 03 June 2003 07:00 Go to previous message
Sekhi
Messages: 2
Registered: June 2003
Junior Member
Hi Mr. Art Metzer,

Thanks for the script, I am trying with it.

Bye

Sekhi
Previous Topic: question bank(sqlplus)
Next Topic: Nondefault NULL in query
Goto Forum:
  


Current Time: Fri Apr 26 06:59:12 CDT 2024