能不能告诉我,SQLServer为什么这么差? 主要是考虑到平台的推广一味的绑在ORACLE上是不现实的,中小型企业接受不了它的定价. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SQLSERVER简单!多简单呀,而且很复杂的问题也能胜任!性能也不错!ORACLE弄得我一头污水! 其实用SQLSERVER肯定能解决大部分业务问题,现在关键不是解决,而是要兼容原有用法.哎. 个人意见:1.数据库不同,采用的技术不同,有自己特殊处理的地方,这应该可以理解2.自定义函数是sql2000新增的,还不完善,只能对表进行读取,对表变量可以做任意操作3.存储过程的return固定返回数字型数据,要返回字符要用返回参数,而自定义函数的返回参数是自定义的,返回字符当然没有问题4.sql中重点使用的还是存储过程,所以建议你多在存储过程处理 <<函数中居然不能用delete 语句?需要delete 语句的函数改成过程。<<过程居然不能返回字符串?需要返回字符串的过程改成函数。以上只是说说而已,实际上可能等于重写所有数据库端的程序只能说,楼主“要求在不影响客户端代码的情况下,实现移植.”的要求不是很现实,我想从sql server转到oracle 遇到的问题应该也是这么多。 sql server移植到oracle 遇到的问题,会少很多吧.oracle支持SQLSERVER更多的功能.Yang_(扬帆破浪) :以前你帮助过我,在此一并表示感谢. Oracle只能通过输出游标向存储过程外部返回查询的结果集,我一直都认为这是Oracle的SP使用不方便的地方过程中不能直接返回字符串这一点并不成立,只不过需要通过参数方式返回而已另外,函数是绝对可以返回字符串的 小猪的一点意见存储过程中要返回字符串就用output输出呀。 a."函数是绝对可以返回字符串的" 但函数中不能用delete 语句,很多已有业务需要在函数中清空临时表。b.procedure 中用OUTPUT是可以地,但就改变了"不动客户端代码"的规则. mahongxi(烤鸡翅膀)(色摸): 客气,老实说我忘了希望你能摸索出好的方法,尽量减少改动量,到时拿出来共享一下 为什么不自己试着改动SQL的后台编制呢, 制作自己需要的SQL SERVER 不知道SQL SERVER 2005出来会是什么样子? 各位兄弟,问题解决了.a.不用函数,全部用存储过程b.有返回值的,把它改成第一个OUTPUT参数c.有返回游标的,对应的output参数类型改为varchar代表数据集所在的临时表表名在内部,原有游标 select * into 临时表d.可选的,一个游标输出参数可以直接select * from ... ,对应的输出为NULLe.客户端原有DOA,进行复杂包装,以保证原有业务代码不动 mahongxi(烤鸡翅膀)(色摸):c.有返回游标的,对应的output参数类型改为varchar代表数据集所在的临时表表名在内部,原有游标 select * into 临时表这个方法不是很可靠,1、如果用局部临时表(#开头),有时(经常)会出现临时表已经被删除的情况,如果用全局临时表(##开头),那必须在客户端显式删除临时表。2、要求临时表空间足够大3、速度需要测试 to Yang_(扬帆破浪):嗯.谢谢提醒,SQLSERVER还有很多不懂的地方,以后还要向你请教.我们系统前期移植的程序大多用一个输出游标,所以可以得到优化.另外,不用临时表,用普通表也可以试试.ADODB改了一大通,今天终于搞定了所有难点,明天调试程序! sql优点还是很多的要善于发现! SQL性能,功能等等,都还不错.基本上在认何地方都要使这种语言,所以说SQL还是好的哟.我不懂ORACLE,但一直都在用SQL.总体来说SQL不错.谢谢,朋友顶一下. sql developer如何删除 sql2000 backup备份为何是追加而不是覆盖 如何删除记录 问个简单的SQL语句,望大家帮忙看下 请教高手:sql2005向access写数据相关问题 exec sp_grantlogin 'bi112\shi'不好用!200分求救..........生手提问!(只能放100分,问题解决后另100分再开贴,决不食言!) 批查询的语句执行顺序问题? 特急!!!SQL2005开发版无法专用管理员连接 分组更新 创建表格指定文件 问一个比较低级的SQL SERVER安装问题。 我的SQL安装不了呢。。。说什么配置问题。。下面是日志。。高手帮忙那。。急
哎.
1.数据库不同,采用的技术不同,有自己特殊处理的地方,这应该可以理解
2.自定义函数是sql2000新增的,还不完善,只能对表进行读取,对表变量可以做任意操作
3.存储过程的return固定返回数字型数据,要返回字符要用返回参数,而自定义函数的返回参数是自定义的,返回字符当然没有问题
4.sql中重点使用的还是存储过程,所以建议你多在存储过程处理
需要delete 语句的函数改成过程。<<过程居然不能返回字符串?
需要返回字符串的过程改成函数。以上只是说说而已,实际上可能等于重写所有数据库端的程序
只能说,楼主“要求在不影响客户端代码的情况下,实现移植.”的要求不是很现实,我想从sql server转到oracle 遇到的问题应该也是这么多。
Yang_(扬帆破浪) :以前你帮助过我,在此一并表示感谢.
函数中清空临时表。
b.procedure 中用OUTPUT是可以地,但就改变了"不动客户端代码"的规则.
客气,老实说我忘了希望你能摸索出好的方法,尽量减少改动量,到时拿出来共享一下
a.不用函数,全部用存储过程
b.有返回值的,把它改成第一个OUTPUT参数
c.有返回游标的,对应的output参数类型改为varchar代表数据集所在的临时表表名
在内部,原有游标 select * into 临时表
d.可选的,一个游标输出参数可以直接select * from ... ,对应的输出为NULL
e.客户端原有DOA,进行复杂包装,以保证原有业务代码不动
c.有返回游标的,对应的output参数类型改为varchar代表数据集所在的临时表表名
在内部,原有游标 select * into 临时表这个方法不是很可靠,
1、如果用局部临时表(#开头),有时(经常)会出现临时表已经被删除的情况,如果用全局临时表(##开头),那必须在客户端显式删除临时表。
2、要求临时表空间足够大
3、速度需要测试
嗯.谢谢提醒,SQLSERVER还有很多不懂的地方,以后还要向你请教.
我们系统前期移植的程序大多用一个输出游标,所以可以得到优化.
另外,不用临时表,用普通表也可以试试.
ADODB改了一大通,今天终于搞定了所有难点,明天调试程序!
要善于发现!
我不懂ORACLE,但一直都在用SQL.总体来说SQL不错.谢谢,朋友顶一下.