仓酷云

标题: MYSQL网页编程之Oracle 存储历程前往了局集 [打印本页]

作者: 灵魂腐蚀    时间: 2015-1-16 22:38
标题: MYSQL网页编程之Oracle 存储历程前往了局集
RDBMS并非没有局限性。它们难以扩展,需要大量的资源来配置和维护,比如时间、硬件和人力。同样,它们往往遵循峰值性能模型,这就要求系统按照峰值容量来配置可用性,而不考虑典型的数据使用情况。oracle|存储历程
1.前往数组(作者:enhydraboy(乱舞的浮尘))

在oracle背景创立一个程序包大概存储历程
connectscott/tiger;

CREATEORREPLACEPACKAGEado_callpkgAS
TYPEeidISTABLEofNUMBER(4)INDEXBYBINARY_INTEGER;
TYPEenameISTABLEofVARCHAR2(40)INDEXBYBINARY_INTEGER;
PROCEDUREgetEmpNames(empidOUTeid,empnameOUTename);
endado_callpkg;


CREATEORREPLACEPACKAGEBODYado_callpkgAS
PROCEDUREgetEmpNames(empidOUTeid,empnameOUTename)IS
CURSORc1ISselectemployee_id,first_name||,||Middle_Initial||,||last_nameasnamefromemployee;
cntNUMBERDEFAULT1;
cc1%ROWTYPE;
BEGIN
openc1;
LOOP
FETCHc1INTOc;
empname(cnt):=c.name;
empid(cnt):=c.employee_id;
EXITWHENc1%NOTFOUND;--processthedata
cnt:=cnt+1;
ENDLOOP;
closec1;
END;
endado_callpkg;

2前台vb程序挪用

DimcnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimcmdAsNewADODB.Command
DimstrAsString

str="{callado_callpkg.getEmpNames({resultset100,empid,empname})}"
cn.Open"Provider=MSDAORA.1;Password=tiger;UserID=scott;DataSource=ORACLE;PersistSecurityInfo=True"
Withcmd
.CommandText=str
.ActiveConnection=cn
.CommandType=adCmdText
EndWith

rs.CursorLocation=adUseClient
rs.Opencmd
DoWhileNotrs.EOF

Debug.Printrs.Fields(0).Value&vbTab&rs.Fields(1).Value
rs.MoveNext
Loop

------------

总结
1oracle的背景存储历程,应当经由过程一个相似数组而且带无数字索引的变量前往,有几个列,就有对应几个变量
2前台,挪用的sql语句写法要注重,
{call<package_name>.<prodecurename>(<input1>,<input2>,....<inputn>,{resultset<number>,<output1>,<output2>,...<outputn>})}
注重的细节,
(1)<number>要本人指定一个数字,暗示承受的行数巨细,假如太小,而实践前往的纪录年夜于这个数字,会堕落
(2)假如有输出参数,应当在command中创立输出参数,对应的中央用?替换,如
{callado_callpkg.getEmpNames(?,{resultset100,empid,empname})}
(3)output和你存储函数的界说分歧,参数名要一样,序次也一样,不然也会堕落。


到2009年,甲骨文的数据库Oracle已经诞生了30周年,而MySQL却连它的一半时间都没有。微软的SQLServer仅仅比MySQL大两年,但是SQLServer的发布是建立在Sybase的基础上。
作者: 小女巫    时间: 2015-1-19 20:14
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
作者: 柔情似水    时间: 2015-1-25 22:31
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
作者: 莫相离    时间: 2015-2-4 08:57
一个是把SQL语句写到客户端,可以使用DataSet进行加工;
作者: 兰色精灵    时间: 2015-2-9 21:02
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
作者: 若相依    时间: 2015-2-27 21:28
发几份SQL课件,以飨阅者
作者: 变相怪杰    时间: 2015-3-9 14:20
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
作者: 蒙在股里    时间: 2015-3-16 23:38
总感觉自己还是不会SQL
作者: 乐观    时间: 2015-3-23 06:47
发几份SQL课件,以飨阅者




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2