Wednesday, April 5, 2017

ORA-06512: at "SYS.UTL_MAIL", line 654 ORA-06512: at "SYS.UTL_MAIL", line 671

I was getting error while trying to send email from database

SQL> declare
  2  begin
  3  UTL_MAIL.SEND(mime_type => 'text/html; charset=us-ascii',
  4                         sender => 'harvey@example.com',
  5                     recipients => 'harvey@example.com',
  6                        subject => 'Test email Harvey',
  7                        message => 'This is a test email from rac01');
  8  end;
  9  /
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.UTL_MAIL", line 654
ORA-06512: at "SYS.UTL_MAIL", line 671
ORA-06512: at line 3


SQL>

What I have found was that the parameter smtp_out_server was not set up

SQL> show parameter  smtp_out_server

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
smtp_out_server                      string
SQL>

By setting the parameter to mail server it worked all good


SQL> alter system set smtp_out_server='mailhost.example.com' scope=both sid='*';

System altered.

SQL> show parameter  smtp_out_server

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
smtp_out_server                      string      mailhost.example.com
SQL> 

SQL> declare
  2  begin
  3  UTL_MAIL.SEND(mime_type => 'text/html; charset=us-ascii',
  4                         sender => 'harvey@example.com',
  5                     recipients => 'harvey@example.com',
  6                        subject => 'Test email Harvey',
  7                        message => 'This is a test email from rac01'); 
  8  end;
  9  /

PL/SQL procedure successfully completed.

SQL> 

Please note that I had to make sure that ACLs are configured right as well

SQL> col acl format a30
SQL> col host format a30
SQL> col principal format a30
SQL> col end_date format a30
SQL> col start_date format a30
SQL> select * from DBA_NETWORK_ACLS;

HOST                           LOWER_PORT UPPER_PORT ACL                            ACLID
------------------------------ ---------- ---------- ------------------------------ --------------------------------
mailhost.csu.edu.au                    25         25 /sys/acls/mailserver_acl.xml   2023FDE3E03E3B45E0511C60040A3C26

SQL> select * from DBA_NETWORK_ACL_PRIVILEGES;

ACL                            ACLID                            PRINCIPAL                      PRIVILE IS_GRANT             INVER START_DATE                     END_DATE
------------------------------ -------------------------------- ------------------------------ ------- -------------------- ----- ------------------------------ ------------------------------
/sys/acls/mailserver_acl.xml   2023FDE3E03E3B45E0511C60040A3C26 HARV                           connect true                 false

SQL> 
SQL> 




Monday, April 3, 2017

Oracle format the output of show parameter command

There are times when you need to show value column with some better formatting. This will not work if you issue

col value for a180

In order to get it working you need to set up value_col_plus_show_param as

SQL> col value_col_plus_show_param for a180
SQL>

Some important show commands:

show parameter
show recyclebin
show sga
show spparameter



SQL> show parameter remote

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_dependencies_mode             string      TIMESTAMP
remote_listener                      string      (ADDRESS_LIST=(ADDRESS=(PROTOC
                                                 OL=TCPS)(HOST=10.2.3.7)(PORT=
                                                 1523))(ADDRESS=(PROTOCOL=TCPS)
                                                 (HOST=10.2.3.8)(PORT=1523))(A
                                                 DDRESS=(PROTOCOL=TCPS)(HOST=10
                                                 .2.3.9)(PORT=1523)))
remote_login_passwordfile            string      EXCLUSIVE
remote_os_authent                    boolean     FALSE
remote_os_roles                      boolean     FALSE
result_cache_remote_expiration       integer     0
SQL>
SQL>
SQL>
SQL> col value_col_plus_show_param for a180
SQL>
SQL> show parameter remote

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
remote_dependencies_mode             string      TIMESTAMP
remote_listener                      string      (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCPS)(HOST=10.2.3.7)(PORT=1523))(ADDRESS=(PROTOCOL=TCPS)(HOST=10.2.3.8)(PORT=1523))(ADDRESS=(PROTOCOL=TCPS)(HOST=10.2.3.9)(PORT=1523)))
remote_login_passwordfile            string      EXCLUSIVE
remote_os_authent                    boolean     FALSE
remote_os_roles                      boolean     FALSE
result_cache_remote_expiration       integer     0
SQL>
SQL>
SQL>
SQL>
SQL> col value_col_plus_show_param for a80
SQL> show parameter remote

NAME                                 TYPE        VALUE
------------------------------------ ----------- --------------------------------------------------------------------------------
remote_dependencies_mode             string      TIMESTAMP
remote_listener                      string      (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCPS)(HOST=10.2.3.7)(PORT=1523))(ADDRESS=(PROT
                                                 OCOL=TCPS)(HOST=10.2.3.8)(PORT=1523))(ADDRESS=(PROTOCOL=TCPS)(HOST=10.2.3.9)(P
                                                 ORT=1523)))
remote_login_passwordfile            string      EXCLUSIVE
remote_os_authent                    boolean     FALSE
remote_os_roles                      boolean     FALSE
result_cache_remote_expiration       integer     0
SQL>


In case you want to see all of the current formatting set on sql type column and hit enter it will list all of the column formats.

SQL> column
COLUMN   NAME_COL_PLUS_PDB_RESTRICTED ON
HEADING  'RESTRICTED'
FORMAT   A10

COLUMN   NAME_COL_PLUS_PDB_OPEN_MODE ON
HEADING  'OPEN MODE'
FORMAT   A10

COLUMN   NAME_COL_PLUS_PDB_NAME ON
HEADING  'CON_NAME'
FORMAT   A30
word_wrap

COLUMN   NAME_COL_PLUS_PDB_CON_ID ON
HEADING  'CON_ID'

COLUMN   NAME_COL_PLUS_PDB_CONTAINERID ON
HEADING  'CON_ID'
FORMAT   a30
word_wrap

COLUMN   NAME_COL_PLUS_PDB_CONTAINER ON
HEADING  'CON_NAME'
FORMAT   a30
word_wrap

COLUMN   NAME_COL_PLUS_SHOW_EDITION ON
HEADING  'EDITION'
FORMAT   a30
word_wrap

COLUMN   result_plus_xquery ON
HEADING  'Result Sequence'

COLUMN   other_plus_exp ON
FORMAT   a44

COLUMN   other_tag_plus_exp ON
FORMAT   a29

COLUMN   object_node_plus_exp ON
FORMAT   a8

COLUMN   plan_plus_exp ON
FORMAT   a60

COLUMN   parent_id_plus_exp ON
HEADING  'p'
FORMAT   990

COLUMN   id_plus_exp ON
HEADING  'i'
FORMAT   990

COLUMN   droptime_plus_show_recyc ON
HEADING  'DROP TIME'
FORMAT   a19

COLUMN   objtype_plus_show_recyc ON
HEADING  'OBJECT TYPE'
FORMAT   a12

COLUMN   objectname_plus_show_recyc ON
HEADING  'RECYCLEBIN NAME'
FORMAT   a30

COLUMN   origname_plus_show_recyc ON
HEADING  'ORIGINAL NAME'
FORMAT   a16

COLUMN   SID_COL_PLUS_SHOW_SPPARAM ON
HEADING  'SID'
FORMAT   a8
word_wrap

COLUMN   VALUE_COL_PLUS_SHOW_SPPARAM ON
HEADING  'VALUE'
FORMAT   a28
word_wrap

COLUMN   NAME_COL_PLUS_SHOW_SPPARAM ON
HEADING  'NAME'
FORMAT   a29
word_wrap

COLUMN   value_col_plus_show_param ON
HEADING  'VALUE'
FORMAT   a80

COLUMN   name_col_plus_show_param ON
HEADING  'NAME'
FORMAT   a36

COLUMN   units_col_plus_show_sga ON
FORMAT   a15

COLUMN   name_col_plus_show_sga ON
FORMAT   a24

COLUMN   ERROR ON
FORMAT   A65
word_wrap

COLUMN   LINE/COL ON
FORMAT   A8

COLUMN   ROWLABEL ON
FORMAT   A15
SQL>