我有一个功能要实现同时支持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中能运行吗?如果不能,怎样修改呢?

解决方案 »

  1.   

    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 ";