sqlserver 消息 682,: 内部错误。提供用于读取列值的缓冲区太小。请运行 DBCC CHECKDB 查看是否有损坏情况 的处理方法
select * into BBB_vip_PREPARE
--SELECT *
FROM
openquery(DBLINK_ORACL,'SELECT TRIM(M.MEMBER_CODE),
''-'' shibiema,
''Y'',
M.CHINESE_NAME,
'''' ps,
''2049-12-31'' youxiaoq,
''VIP'',
M.JOINT_DATE,
M.SHOP_CODE,
M.POINTS,
''N'',
0 CSJE,
''2049-12-31'',
M.SEX,
M.ID_NO,
CASE
WHEN M.BIRTHDAY>TO_DATE(''2000-01-01'',''yyyy-mm-dd'')
THEN ''2100-''||SUBSTR(M.BIRTHMMDD,0,2)||''-''||SUBSTR(M.BIRTHMMDD,2,2)
WHEN M.BIRTHDAY<TO_DATE(''2000-01-01'',''yyyy-mm-dd'')
THEN TO_CHAR(M.BIRTHDAY,''yyyy-mm-dd'')
END SHENGRI, --之前这里没有加 SHENGRI,结果就报上述错误,加了就不报错了。
TRIM(PP.PROV_CNAME),
'''' postcode,
M.PHONE_DAY,
M.PHONE_NIGHT,
M.E_MAIL,
''0'' QQ,
''MSN'' MSN,
TRIM(M.ADDRESS) ,
''1900-01-01 23:59'',
0 JSJF,
1,
''-'' BZ,
''-'' XL,
''-'' ZY,
''-'' SR,
M.AGE
FROM MEMBERSHIP M
LEFT JOIN PROVINCE PP
ON TRIM(PP.PROV_CODE) =TRIM(M.PROV_CODE)
--AND M.ID_NO IS NOT NULL
and 1=0
')
出现上述错误后,运行dbcheck ,没有错误。后来想强行修复
ALTER DATABASE MYDBNAME SET SINGLE_USER
执行好长时间也没有结束,最后放弃,看看是不是还有其他的地方要注意
结果发现:
--之前这里没有加 SHENGRI,结果就报上述错误,加了就不报错了。
分享之。
上述语句是在SQLSERVER 中执行,生成oracle查询来的数据。