Sybase ASA中几个非常有用的存储过程

以下过程非常实用:

1. Send UDP包到指定地址:

sa_send_udp
CALL sa_send_udp( '10.25.99.196', 2345', 'This is a test' );

2. 获取当前系统中活跃的事务列表:
call sa_transactions( )

3. 有用的tsql 环境设置
CREATE PROCEDURE dbo.sp_tsql_environment()
BEGIN
    IF db_property( 'IQStore' ) = 'Off' THEN
        -- SQL Anywhere datastore
        SET TEMPORARY OPTION close_on_endtrans='OFF';
    END IF;
    SET TEMPORARY OPTION ansinull='OFF';
    SET TEMPORARY OPTION tsql_variables='ON';
    SET TEMPORARY OPTION ansi_blanks='ON';
    SET TEMPORARY OPTION chained='OFF';
    SET TEMPORARY OPTION quoted_identifier='OFF';
    SET TEMPORARY OPTION allow_nulls_by_default='OFF';
    SET TEMPORARY OPTION on_tsql_error='CONTINUE';
    SET TEMPORARY OPTION isolation_level='1';
    SET TEMPORARY OPTION date_format='YYYY-MM-DD';
    SET TEMPORARY OPTION timestamp_format='YYYY-MM-DD HH:NN:SS.SSS';
    SET TEMPORARY OPTION time_format='HH:NN:SS.SSS';
    SET TEMPORARY OPTION date_order='MDY';
    SET TEMPORARY OPTION escape_character='OFF';
END

4. 执行操作系统命令
xp_cmdshell system procedure
Carries out an operating system command from a procedure.
xp_cmdshell( 'dir > c:\\temp.txt', 'no_output' )

5. 读取写入文件
xp_read_file
xp_write_file


6. 获取某一个表的 DDL语句
sa_get_table_definition system procedure

select row_value from sa_split_list( sa_get_table_definition('DBA', 'ttt'), char(10));
row_value
CREATE TABLE "DBA"."ttt" (
    "abc"                            timestamp NULL
)
;

7. 发送邮件
CALL xp_startsmtp( smtp_sender = '[email protected]', smtp_server='smtp.163.com', smtp_port='25',
timeout=240, smtp_auth_username='iihero', smtp_auth_password='***');
CALL xp_sendmail( recipient='[email protected]',
      subject='New Pricing');

call xp_stopmail();


把一个查询的结果以附件的形式发送出去:

unload select * from t output to 'c:\\test.txt';
CALL xp_startsmtp( smtp_sender = '[email protected]', smtp_server='smtp.163.com', smtp_port='25',
timeout=240, smtp_auth_username='xxx', smtp_auth_password='******');
CALL xp_sendmail( recipient='[email protected]',subject='测试五的结果',"message"='helllo, content',include_file='c:\\test.txt', content_type = 'ASIS');
call xp_stopmail();

把上边的smtp_sender, username, auth_password设置成你的。recipient设成有效的邮箱即可。



你可能感兴趣的:(Sybase ASA中几个非常有用的存储过程)