利用Oracle的utl_smtp 发送邮件(公网邮件和服务器)
CREATE OR REPLACE PROCEDURE send_mail(
p_recipient VARCHAR2, -- 邮件接收人
p_subject VARCHAR2, -- 邮件标题
p_message VARCHAR2 -- 邮件正文
)
IS
--下面四个变量请根据实际邮件服务器进行赋值
v_mailhost VARCHAR2(30) := 'smtp.163.com'; --SMTP服务器地址
v_user VARCHAR2(30) := 'user'; --登录SMTP服务器的用户名;只是用户名,不包括163.com部分
v_pass VARCHAR2(20) := 'pass'; --登录SMTP服务器的密码
v_sender VARCHAR2(50) := 'user@xxx.com'; --发送都邮箱,一般与 ps_user 对应
v_conn UTL_SMTP.connection; --到邮件服务器的连接
v_msg varchar2(4000); --邮件内容
BEGIN
v_conn := UTL_SMTP.open_connection(v_mailhost, 25);
UTL_SMTP.ehlo(v_conn, v_mailhost); --是用 ehlo() 而不是 helo() 函数
--否则会报:ORA-29279: SMTP 永久性错误: 503 5.5.2 Send hello first.
UTL_SMTP.command(v_conn, 'AUTH LOGIN'); -- smtp服务器登录校验
UTL_SMTP.command(v_conn,UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw(v_user))));
UTL_SMTP.command(v_conn,UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw(v_pass))));
UTL_SMTP.mail(v_conn, '<' || v_sender || '>'); --设置发件人
UTL_SMTP.rcpt(v_conn, '<' || p_recipient || '>'); --设置收件人
&n
相关文档:
1) Delphi向oracle中传递参数 如oracle中的参数名为erpcx
答:如果想从表里取值到oracle,则erpcx:=trim(aq1.fieldbyname('erpcx').AsString);
否则直接用控件名字
语句为
with aperp do
begin
connection:=dm.ADOCerp;
parameters.Clear;&nbs ......
1、查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
2、查看表空间物理文件的名称及大小
select tablespace_name, file_id, file_name,
round(by ......
ORACLE和SQL语法区别归纳
数据类型比较
类型名称
Oracle
SQLServer
比较
字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb
变长字符数据类型 VARCHAR2 VARCHAR Oracle里面最大长度为4kb,SQLServer里面最大长度为8kb
根据字符集而定的固定长度字符串 NCHAR NCHA ......
一、ORACLE的启动和关闭
1、在单机环境下
要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下
su - oracle
a、启动ORACLE系统
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>startup
SVRMGR>quit
b、关闭ORACLE系统
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>shutdown
SVR ......
1.如果你误删除了数据,不用害怕,短时间内还是可以恢复的.
select * from (select * from claim_monitor_dispatch as of timestamp to_date('20091203 08:30:00','yyyymmdd hh24:mi:ss')
)
where to_char(created_date,'yyyymmdd')='20090707'
2.误删除表之后的恢复,恢复整张表
flashback table name before dr ......