连接oracle分布查询报错

gem227 2011-08-25 02:31:59
decalre @startdate varchar(10)
declare @stopdate varchar(10)

set @startdate=convert(varchar(100),getdate()-2,23)
set @stopdate=convert(varchar(100),getdate()-2,23)


select * from openquery(his,'select * from v where C>=@startdate and C<@stopdate')

请问这个变量设置是不是有问题,我这总是报错
...全文
92 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gem227 2011-08-25
  • 打赏
  • 举报
回复
maco_wang 你这个也有语法错误
gem227 2011-08-25
  • 打赏
  • 举报
回复
maco_wang 我贴出来的写错了,原程序set @stopdate=convert(varchar(100),getdate(),23)
gem227 2011-08-25
  • 打赏
  • 举报
回复
ssp2009 你这好像也有错误 ,不行啊
叶子 2011-08-25
  • 打赏
  • 举报
回复

decalre @startdate varchar(10) --declare 你拼写错了
declare @stopdate varchar(10)

set @startdate=convert(varchar(100),getdate()-2,23)--/*2011-08-23 这个格式没有必要用varchar(100)*/
set @stopdate=convert(varchar(100),getdate()-2,23) --你的开始和结束是相同的????


select * from openquery(his,'select * from v where C>=@startdate and C<@stopdate')--这样变量进不去呀?
--改成
select * from openquery(his,'select * from v where C>='''+@startdate+''' and C<'''+@stopdate+'''')
--试试
gem227 2011-08-25
  • 打赏
  • 举报
回复
我在这打错了,程序上没有错,然后报,missing expression
zhangpeiying163 2011-08-25
  • 打赏
  • 举报
回复
'select * from v where C>=@startdate and C<@stopdate',先测这个有问题没有
快溜 2011-08-25
  • 打赏
  • 举报
回复
纠正下你的语法错误,至于能不能查到数据,不清楚
select * from openquery(his,'select * from v where C>='+@startdate+' and C<'+@stopdate)
geniuswjt 2011-08-25
  • 打赏
  • 举报
回复

--你这俩时间的区别在哪?

PS:建议直接去 oracle版块
--传送门
oracle
go
怪众生太美丽 2011-08-25
  • 打赏
  • 举报
回复

呃...varchar是可变的,
declare @startdate varchar(10)
declare @stopdate varchar(10)

set @startdate=convert(varchar(100),getdate()-2,23)
set @stopdate=convert(varchar(100),getdate()-2,23)
select @startdate
select @stopdate
函数写错了..declare
chuanzhang5687 2011-08-25
  • 打赏
  • 举报
回复
去oracle版问问
怪众生太美丽 2011-08-25
  • 打赏
  • 举报
回复
肯定要错了,VARCHAR(100)赋值给VARCHAR(10)
资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在使用Oracle数据库时,可能会遇到ORA-00600错误,这是一个内部错误代码,表示数据库遇到了底层结构或数据不一致等异常情况,可能是硬件故障、软件漏洞或数据损坏导致的。例如,当参数列表中出现[kcblasm_1]、[103]时,可能与ASM(自动存储管理)或数据块组装有关。 如果ORA-00600错误与哈希连接或哈希分组操作有关,可以通过调整会话级别的参数来临时规避。比如,禁用哈希连接可以执行ALTER SESSION SET "_hash_join_enabled"=false;,禁用哈希分组可以执行ALTER SESSION SET "_gby_hash_aggregation_enabled"=false;。但这些只是临时方法,可能会影响性能,且未解决根本问题。 从根本上解决ORA-00600错误,通常需要优化SQL语句,比如调整查询计划、使用索引、减少数据量等。如果错误是已知的Oracle数据库漏洞导致的,更新数据库版本或应用补丁是必要的。例如,对于10.2.0.5.0到10.2.0.5.3版本,可以应用PATCH 7612454来修复与kcblasm_1相关的错误;对于10.2.0.5.4和11.2版本,Oracle已发布PSU来解决该问题。 要定位触发错误的SQL语句,可以查看报警日志中提到的trace文件,如/orcl_ora_29974.trc、orcl_ora_30084.trc等,找到当前会话的SQL语句并进行分析优化。优化时可考虑以下方面:优化查询语句结构,减少全表扫描,使用更有效的连接方法;创建或优化索引,提高查询效率;分析并调整SQL执行计划,使其更符合数据分布查询需求;检查数据一致性问题,如损坏的块或数据行;如果是存储问题引起的,检查存储系统健康状况

22,299

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧