这些sqlserver的sql语句在oracle上执行有问题吗

abysswon 2008-08-29 03:16:27
我有一个功能要实现同时支持sqlserver和oracle,里面的操作不复杂,只是一些sql语句,不牵扯存储过程什么的,至于一些很标准的sql语句就不说了,我想问问下面这些在sqlserver上运行良好的sql语句在oracle上执行时需要修改吗?

下面是用到时间格式的,DateTime.Now是c#中的时间,是字串型
string updatesql = "update sys_PushesInfo set pushtime ="+"'"+DateTime.Now+"'"+" where pushesid='1'";

下面这个是用到max与cast函数的,分别是取最大与转换数据类型
string sql = "select max(cast(pushesid as int)) from sys_PushesInfo ";

下面这个是统计函数
string sql = "select count(*) from sys_PushesInfo where userid = '1'";

还有下面这种有select子句的情况
string selectcmd = "SELECT processid from PushInfo where pushtime = " + "(select max(pushtime) from sys_PushesInfo)";

麻烦看看上面这几种情况在oracle中能运行吗?如果不能,怎样修改呢?

...全文
109 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hebo2005 2008-08-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 abysswon 的回复:]
好的,谢谢,其他的那些句子是没问题的吗?
[/Quote]
Y
abysswon 2008-08-29
  • 打赏
  • 举报
回复
好的,谢谢,其他的那些句子是没问题的吗?
hebo2005 2008-08-29
  • 打赏
  • 举报
回复
string updatesql = "update sys_PushesInfo set pushtime ="+"'"+DateTime.Now+"'"+" where pushesid='1'";
如果pushtime 是date型的,要这样
string updatesql = "update sys_PushesInfo set pushtime =to_date("+"'"+DateTime.Now+"','yyyy-mm-dd hh24:mi:ss'"+" where pushesid='1'";
先确认下你C#中取出的时间格式如果是2008-08-29 13:50:50这类的,就用我写的格式,如果是其它的,就按取出来的格式

这句
string sql = "select max(cast(pushesid as int)) from sys_PushesInfo ";
oracle里
string sql = "select max(to_number(pushesid )) from sys_PushesInfo ";

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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