SQL 92 标准
YoYo
项目终于结束了,总结的时候到了... hehe :)
在项目中我们遇到了很多的问题,标准SQL使用就是其中一个。 因为我们在做BI package的时候,一开始都是基于MS SQL 来做的,所以Universe的设计上也没有太多的考虑。 当后来老大告诉我偶们要同时release 一个基于 Oracle 的版本时,我们才发现问题来了。 因为在Universe里面我们使用的SQL很多都不是标准的SQL,很多都是MSSQL所独有的,也就是 T-SQL(Transcate SQL), 所以当把universe移植到Oracle上的时候,我们不得不为Oracle重新做了一套Universe。又因为Dashboard和Crystal Reports都是基于Universe来做的,所以最后我们的efforts 被扩大了一倍 ... 杯具啊!!
项目做完了,现在来研究下哪些SQL是通用的,防止以后不要犯同样的错误。 以下内容均为本人google 所得,转载喽~~ hehe~
【概念总结】
1. 基本应用上,sql server 和oracle都遵循sql 92语法标准。
2. 实际应用中大家都会超出以上标准,使用各家数据库厂商都提供的丰富的自定义标准函数库和语法。
3. 微软sql server的sql 扩展叫T-SQL(Transcate SQL).
4. Oracle 的sql 扩展叫PL-SQL.
5. 最简单的插入、删除操作都差不多,但是稍微复杂一点,都不一样了。比如涉及到跨数据表,跨数据库,跨用户的操作的语法不一样。
6. 一个很简单的例子,去数据库系统时间的写法
tsql: select getdate()
pl-sql: select sysdate from dual
【SQL 92国际标准】
1. HOWTO - SQL92 Syntax
- http://owen.sj.ca.us/rkowen/howto/sql92F.html
2. Wikipedia
- http://en.wikipedia.org/wiki/SQL-92
- http://en.wikipedia.org/wiki/SQL
【前人总结】
1. Oracle与SQL Server的几点不同
- http://www.programfan.com/blog/article.asp?id=9101
2. SQL 92语法标准
以下内容来自CSDN博客,转载请标明出处:http://blog.csdn.net/wnhoo/archive/2007/04/11/1560941.aspx
==================================================
SQL92 Syntax and common or <Oracle> additions (not = '!')
相关文档:
二:有效的应用设计
我们通常将最常用的应用分为2种类型:联机事务处理类型(OLTP),决策支持系统(DSS)。
联机事务处理(OLTP)
该类型的应用是高吞吐量,插入、更新、删除操作比较多的系统,这些系统以不断增长的大容量数据为特征,它们提供给成百用户同时存取,典型的OLTP系统是订票系统,银行的业务系统,订单系统。OT ......
五: ORACLE的执行计划
背景知识:为了更好的进行下面的内容我们必须了解一些概念性的术语:
共享sql语句
为了不重复解析相同的SQL语句(因为解析操作比较费资源,会导致性能下降),在第一次解析之后,ORACLE将SQL语句及解析后得到的执行计划存放在内存中。这块位于系统全局区域SGA(system global are ......
执行计划的步骤
执行计划的每一步返回一组行,它们或者为下一步所使用,或者在最后一步时返回给发出SQL语句的用户或应用。由每一步返回的一组行叫做行源(row source)。图5-1树状图显示了从一步到另一步行数据的流动情况。每步的编号反映了在你观察执行计划时所示步骤的顺序(如何观察执行计划将被简短地说明)。一般来 ......