六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 134|回复: 0

Sybase IQ 数据备份

[复制链接]

升级  40%

96

主题

96

主题

96

主题

举人

Rank: 3Rank: 3

积分
320
 楼主| 发表于 2013-1-14 00:25:35 | 显示全部楼层 |阅读模式
 
 
备份可以采用 temp_extract_name1 的语法备份,但是在用定时任务的时候会出现如下的错误
 
 
Handler for event 'test_ev' caused SQLSTATE '09W03'
Result set not permitted in 'test_ev'

 
解决办法
 
例如:CREATE PROCEDURE proc1()BEGINSET TEMPORARY OPTION Temp_Extract_Column_Delimiter = '|';SET TEMPORARY OPTION temp_extract_name1 = 'foo.out';SELECT * FROM iq_table;SET TEMPORARY OPTION temp_extract_name1 = '';  END; CREATE EVENT "test_ev" ENABLE HANDLERBEGINSELECT * INTO #tmp FROM proc1();END;TRIGGER EVENT test_ev; 
 
 
动态执行备份语句
 
if exists(select 1 from sys.sysprocedure where proc_name = 'p_test' and user_name(creator)='bdk') then   drop procedure bdk.p_testend if;create procedure bdk.p_test()on exception resumebegin declare @sql         varchar(1000); select 1;  --必须加上这句话,不然会报错 试试看呢 set temporary option Temp_Extract_Column_Delimiter = '|';set @sql='set temporary option Temp_Extract_Name1 =''/home/backup/abc.bak''';execute(@sql); set @sql='select * from table01;';execute(@sql);set temporary option Temp_Extract_Name1 = '';end;bdk.p_test 
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表