yll123 发表于 2008-08-05 13:13

请问能不能在存储过程中执行load table?

是否可以通过存储过程中执行load table语句?

lqg64150 发表于 2008-08-15 17:02

领教了.请问什么版本可以用load table?我所在公司刚刚才从1192升级到1250,以前没接触过.可否有相关资料?谢谢

kanfu 发表于 2008-08-16 00:20

回复 #2 lqg64150 的帖子

Sybase IQ 不是ASE.

IQ12.6 是不行

RNW 发表于 2008-08-27 12:30

load table: 将数据从文件中加载到IQ
还没见过在存储过程中这样用的,
好象在ASE存储过程中调用BCP,一个道理吧?

hfvbc 发表于 2008-09-02 16:19

可以:
create procedure procedurename()
begin
load table sql;
end

耿耿于怀 发表于 2008-09-04 22:05

我来学习一下咯

coolmax 发表于 2008-12-15 09:50

可以的,发个例子参考一下。

create procedure DBA.SP_LOAD_NEW_114_CDR(@YearMonth integer,@CallLocationID smallint= 0,@ServiceCode integer= 0)
as
begin
declare @i_MonthID integer,
@c_Month varchar(2),
@c_TableName varchar(50)
select @i_MonthID = TIME_MONTH_ID from dba.TD_TIME_MONTH where YEAR_MONTH = @YearMonth
select @c_Month="right"(convert(varchar,@YearMonth),2)
select @c_TableName=string('dba.TT_BST_CDR_',@c_Month)
if @CallLocationID = -1
    execute('delete from ' || @c_TableName || ' where REC_MONTH_ID = ' || @i_MonthID || ' and DATASOURCE_ID = 1')
if @CallLocationID > 0
    execute('delete from ' || @c_TableName || ' where REC_MONTH_ID = ' || @i_MonthID || ' and DATASOURCE_ID = 1 and REC_LOCATION_ID = ' || @CallLocationID)
commit transaction
execute('load into table ' || @c_TableName || '\x0D\x0A (\x0D\x0ADATASOURCE_ID   ''※''null(''''), \x0D\x0AREC_MONTH_ID   ''※''null(''''),\x0D\x0AREC_LOCATION_ID   ''※''null(''''),\x0D\x0ASERIALNO   ''※''null(''''),\x0D\x0ASERIALID   ''※''null(''''),\x0D\x0ASEARCHCODE   ''※''null(''''),\x0D\x0AUNITNAME   ''※''null(''''),\x0D\x0ATEL''※''null(''''),\x0D\x0AQUERYED_LOCATION_ID''※''null(''''),\x0D\x0AQUERYED_TEL''※''null(''''), \x0D\x0AFINDNUM   ''※'' \x0A null(''''),\x0D\x0AFINDTIME''※''null(''''),\x0D\x0ACALLERNO   ''※''null(''''),\x0D\x0ATRUNK_CODE   ''※''null(''''), \x0D\x0ACALL_LOCATION_ID''※''null(''''),\x0D\x0AUSER_CALL_NO   ''※''null(''''),   \x0D\x0ALASTDATE''※''null(''''),\x0D\x0ATIME_MONTH_ID   ''※''null(''''), \x0D\x0ATIME_DAY_ID   ''※''null(''''),\x0D\x0ATIMEPIECE_ID   ''※''null(''''), \x0D\x0AUNITIDC''※''null(''''),\x0D\x0AUNITID''※''null(''''),\x0D\x0ASWITCH_TEL''※'' \x0A null(''''),\x0D\x0ABUSINESS_CODE''※''null(''''),\x0D\x0ABUREAU''※''null(''''), \x0D\x0ACARRIER_ID''※''null(''''),\x0D\x0AACCESS_TYPE1_ID''※'' null(''''),\x0D\x0ASERVICE_ID   ''※''null(''''),\x0D\x0ASEARCHKEYS   ''※'' null(''''),\x0D\x0AINDUSTRY_CODE''※'' null(''''),\x0D\x0AINDUSTRY_NAME''※'' null(''''),\x0D\x0ALOAD_TIME   ''\x0D'' null('''') \x0D\x0A )\x0D\x0A From ''d:\\ETL_FTP\\NEW_114_CDR\\NEW_114_CDR.DAT''\x0D\x0A ROW DELIMITED BY ''\x0A''\x0D\x0A ESCAPES\x0A OFF\x0D\x0A QUOTES OFF\x0D\x0A NOTIFY 100000\x0D\x0A WITH CHECKPOINT ON')
      commit transaction
end

coolmax 发表于 2008-12-15 09:52

还和load 的数据文件关系很大,还有就是类型转换的设置,希望哪位高手能整理一下经验所得,供大家学习一下。
页: [1]
查看完整版本: 请问能不能在存储过程中执行load table?