对于Oracle,对于数据修改的操作通过存储过程处理,而对于函数一般不进行数据修改操作.同时,函数可以通过 Select 进行调用,而存储过程则不行. 一.对于volatile 函数的行为 1.Oracle 行为 创建函数: create or replace function fun01 return number as begin insert into t1 values(1); return 1; end; create or replace function fun02 return…
判断数据库的类型 当我们通过一些测试,发现存在SQL注入之后,首先要做的就是判断数据库的类型. 常用的数据库有MySQL.Access.SQLServer.Oracle.PostgreSQL.虽然绝大多数数据库的大部分SQL语句都类似,但是每个数据库还是有自己特殊的表的.通过表我们可以分辨是哪些数据库. MySQL数据库的特有的表是 information_schema.tables , access数据库特有的表是 msysobjects ,SQLServer 数据库特有的表是 sysobje…
[需求]例如先有数据为 id | name ------+--------- | lottu | xuan | rax | ak | vincent 现在需要转换为 id | names ------+---------------- | lottu|xuan|rax | ak|vincent 反之:oracle,postgresql有如何对待 [列转行] oracle  对oracle:看到这样的需求:立刻想到vm_concat,listagg函数:这样sql就出来了 select id, v…
postgresql没有存储过程,但是函数功能很强大. 在近期开发的电商管理平台中,对于产品的类目管理,设计时有个属性字段,设为字符数组,但是EF不支持数组的操作,所以在添加和修改类目时,需要对属性的存储和维护进行特殊处理,导致代码量增大. public static async Task AddCategory(MerchandiseCategory category) { using (MasonDB db = new MasonDB()) { var p_attributes = new…
为什么函数影响性能 在SQL语句中,如果不合理的使用函数(Function)就会严重影响性能,其实这里想说的是PL/SQL中的自定义函数,反而对于一些内置函数而言,影响性能的可能性较小.那么为什么SQL语句当中,不合理的使用函数会影响性能呢? 在SELECT语句中调用函数时,那么查询返回的结果集中的每一行都会调用该函数.如果该函数需要执行1秒,返回的结果集是10行,那么此时SQL语句就需要10秒,如果该函数执行时间需要3秒,返回的结果集是10000条记录,那么这个时间就是30000秒~= 500…
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年                显示值:07        yyy three digits 三位年                显示值:007        yyyy four digits 四位年                显示值:2007                    Month…
从Oracle 8开始,我们就可以从一个collection类型的数据集合中查询出数据,这个集合称之为"虚拟表".它的方法是"SELECT FROM TABLE(CAST(plsql_function AS collection_type))",据说该方法在处理大数据量时会有内存方面的限制.到了Oracle 9i之后,一个称为pipelined表函数的技术被推出来.他和普通的表函数很类似,但还有有一些显著的差别. 第一,pipelined函数处理的数据,是以管道的方…
从 Oracle 到 PostgreSQL ,某保险公司迁移实践 http://www.itpub.net/2019/11/08/4108/ 信泰人寿保险股份有限公司 摘要:去O一直是金融保险行业永恒的话题,但去O的难度之大也只有真正经历过的人才知其中的艰辛.此次笔者结合实际去O工作,对去O过程中碰到的DBLINK.SEQUENCE最大值.空串.SQL语句中的别名等等近50个问题进行探讨,绝对是干货满满,诚意十足! 章晨曦(某保险公司技术经理) Oracle ACE-A,Oracle 10g O…
2015年左右,因为工作需要用MongoDB.CouchBase这两种文档型数据库,时不时到这两个数据库官网上查资料.报BUG.时常可以在MongoDB官网上看到这样一些新闻,“某某企业成功将MySQL替换成MongoDB,性能大幅提升”,“某某公司将Oracle替换成MongoDB,节约成本若干”…… 而在CouchBase官网上,又会时不时看到这样的新闻:“A公司将MongoDB替换成CouchBase,性能提升显著”.“B公司将MongoDB替换为CouchBase,性能大大提升.”………
实际开发中经常用到select * from table,往往需要知道具体的字段,这个时候再去数据库中翻或者查看数据字典比较麻烦.为了方便,自己特意写了一个小函数f_selectall,针对SqlServer.Oracle和PostgreSQL数据库分别写了. 核心思想:先查出每张表的列名字段,然后…