This Procedure have two input parameters for email body.
CREATE OR REPLACE PROCEDURE "SEND_EMAIL"(
p_message_body IN VARCHAR2,
p_recipient1 IN VARCHAR2 DEFAULT 'saman@test.com',
p_recipient2 IN VARCHAR2 DEFAULT 'kamal@test.com',
p_sender IN VARCHAR2 DEFAULT 'oracle_database@test.com',
p_subject IN VARCHAR2 DEFAULT 'PRODUCTION DATABASE EMAIL',
p_cc IN VARCHAR2 DEFAULT 'nimal@test.com',
p_mailport IN NUMBER DEFAULT 25,
p_mailhost IN VARCHAR2 DEFAULT 'localhost' )
IS
l_mail_conn UTL_SMTP.connection;
crlf CHAR(2) := CHR(13)||CHR(10);
l_message VARCHAR2(32767);
BEGIN
l_message := 'Date: '||TO_CHAR(sysdate,'dd Mon yy hh24:mi:ss')||crlf;
l_message := l_message||'From: '||p_sender||crlf;
l_message := l_message||'To: '||p_recipient1||';'||p_recipient2||';'||crlf;
l_message := l_message||'CC: '||p_cc||crlf;
l_message := l_message||'Subject: '||p_subject||crlf;
l_message := l_message||crlf||p_message_body;
l_mail_conn := utl_smtp.open_connection(p_mailhost, p_mailport);
utl_smtp.helo(l_mail_conn, p_mailhost);
utl_smtp.mail(l_mail_conn, p_sender);
utl_smtp.rcpt(l_mail_conn, p_recipient1);
utl_smtp.rcpt(l_mail_conn, p_recipient2);
utl_smtp.rcpt(l_mail_conn, p_recipient3);
utl_smtp.rcpt(l_mail_conn, p_recipient4);
utl_smtp.rcpt(l_mail_conn, p_cc);
utl_smtp.data(l_mail_conn, l_message);
utl_smtp.quit(l_mail_conn);
EXCEPTION
WHEN OTHERS THEN
raise_application_error( -20000,'Failed to send mail due to the following error: ' ||crlf|| sqlerrm);
END;
Tuesday, June 30, 2015
Tuesday, June 23, 2015
Rename Datafile Name / Change Datafile path ( Oracle)
Create Tablespace as EXAMPLE_DATA01
CREATE TABLESPACE EXAMPLE_DATA01 DATAFILE '/u01/app/oracle/oradata/EXAMPLE_DATA01_01.dbf' SIZE 10M AUTOEXTEND ON MAXSIZE 20m;
--Check datafiles current path
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/system01.dbf
/u01/app/oracle/oradata/sysaux01.dbf
/u01/app/oracle/oradata/undotbs01.dbf
/u01/app/oracle/oradata/users01.dbf
/u01/app/oracle/oradata/EXAMPLE_DATA01_01.dbf
ALTER TABLESPACE EXAMPLE_DATA01 OFFLINE NORMAL;
--From File system change copy datafile to new path
mv /u01/app/oracle/oradata/EXAMPLE_DATA01_01.dbf /u01/app/oracle/oradata/newdata/EXAMPLE_DATA01_01.dbf
ALTER TABLESPACE EXAMPLE_DATA01 RENAME DATAFILE '/u01/app/oracle/oradata/EXAMPLE_DATA01_01.dbf' TO '/u01/app/oracle/oradata/newdata/EXAMPLE_DATA01_01.dbf';
ALTER TABLESPACE EXAMPLE_DATA01 online;
CREATE TABLESPACE EXAMPLE_DATA01 DATAFILE '/u01/app/oracle/oradata/EXAMPLE_DATA01_01.dbf' SIZE 10M AUTOEXTEND ON MAXSIZE 20m;
--Check datafiles current path
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/system01.dbf
/u01/app/oracle/oradata/sysaux01.dbf
/u01/app/oracle/oradata/undotbs01.dbf
/u01/app/oracle/oradata/users01.dbf
/u01/app/oracle/oradata/EXAMPLE_DATA01_01.dbf
ALTER TABLESPACE EXAMPLE_DATA01 OFFLINE NORMAL;
--From File system change copy datafile to new path
mv /u01/app/oracle/oradata/EXAMPLE_DATA01_01.dbf /u01/app/oracle/oradata/newdata/EXAMPLE_DATA01_01.dbf
ALTER TABLESPACE EXAMPLE_DATA01 RENAME DATAFILE '/u01/app/oracle/oradata/EXAMPLE_DATA01_01.dbf' TO '/u01/app/oracle/oradata/newdata/EXAMPLE_DATA01_01.dbf';
ALTER TABLESPACE EXAMPLE_DATA01 online;
How to Update One table from Another tables data which have join
We want to update First table TICKET_ID from second table TICKET_ID where TICKET_NAME = 'NEW',
we should have to update first table ( ID ) matching data to second table (U_ID).
CREATE TABLE TABLE1
(ID,F_NAME,L_NAME,TICKET_ID);
CREATE TABLE TABLE2
(T_ID,TICKET_ID,U_ID,TICKET_NAME);
SET SERVEROUTPUT ON
DECLARE
CURSOR C1
IS
SELECT A.ID,
A.TICKET_ID
FROM TABLE2 A,
WHERE A.TICKET_NAME = 'NEW';
COUNT_UP NUMBER;
BEGIN
BEGIN
COUNT_UP := 0;
FOR C2 IN C1
LOOP
UPDATE TABLE1
SET TICKET_ID = C2.TICKET_ID
WHERE ID = C2.U_ID;
COUNT_UP := COUNT_UP + 1;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
DBMS_OUTPUT.PUT_LINE('Number of Record Update : '||COUNT_UP);
END;
we should have to update first table ( ID ) matching data to second table (U_ID).
CREATE TABLE TABLE1
(ID,F_NAME,L_NAME,TICKET_ID);
CREATE TABLE TABLE2
(T_ID,TICKET_ID,U_ID,TICKET_NAME);
SET SERVEROUTPUT ON
DECLARE
CURSOR C1
IS
SELECT A.ID,
A.TICKET_ID
FROM TABLE2 A,
WHERE A.TICKET_NAME = 'NEW';
COUNT_UP NUMBER;
BEGIN
BEGIN
COUNT_UP := 0;
FOR C2 IN C1
LOOP
UPDATE TABLE1
SET TICKET_ID = C2.TICKET_ID
WHERE ID = C2.U_ID;
COUNT_UP := COUNT_UP + 1;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
DBMS_OUTPUT.PUT_LINE('Number of Record Update : '||COUNT_UP);
END;
Subscribe to:
Posts (Atom)