|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如IBM公司最近宣布让渠道合作伙伴分销其SaaS应用程序的新计划。微软认为MySQL学习教程是销售其云计算服务的重要组成部分。然而即使有这种趋势,DBaaS仍然不同于内部数据库,解决方案提供商必须认识到这一点;否则,他们不仅仅是丢失几个客户,而是要失去的更多。oracle
接第一篇:
11.PL/SQL的用户们,看看上面:
创立一个没带参数的procedure:
createorreplaceprocedureproc_nameas
inumber;
begin
...
endproc_name;
创立一个带参数的procedure:
createorreplaceprocedureproc_name(arg1,...)as
inumber;
begin
...
endproc_name;
你很习气用declare来声明吗?不可,这里不可,你必须听我的,用as
创立一个触发器:
createorreplacetriggertri_namebeforeinsertontnameforeach
row
declare
inumber;
begin
..
end;
由于这是触发器,以是它要用declare来声明变量,只管触发器用的也是PL/
SQL的语法.但我们是为了区分于别的范例的存储历程,为了让用户以为
ORACLE一目了然一点.
怎样就一个end;不是endtri_name吗?是的,procedure和function是如许
计划的,但如许可让用户以为更难用一点么!
(sqlplus下)你挪用一个不带参数的procedure:
callproc_name();
(sqlplus下)你挪用一个不带参数的procedure:
callproc_name(arg1,arg2);
是的,它不是可选的,它必须云云,界说一个没有参数的procedure就是不
要空的()号,但挪用它的时侯就是要,界说一个有参数的procedure固然也要.
function的情形与这个也一样.
你挪用一个function:
ret_val:=func_name();
甚么?你不必要ret_val,不可,这是强买强卖,不要不可.不然我不干活!
并且,哼哼,我给出的毛病信息包管你看不懂.
你要玩更初级的计划办法,用上包了:
createorreplacepackagepack_nameas
....
endpack_name;
是的,这只是包的声明.
要想界说这个包,你还得:
createorreplacepackagebodypack_nameas
procedureproc_nameis
--你不是说用as吗?是的,可是这里as已被上一条语句用了,呶!你
也看到了.用is有甚么欠好?
endproc_name
functionfunc_nameis
...
endfunc_name
endpack_name;
12.看看堕落信息,来自SQLPLUS的,来自Pro*C预编译器的,来自别的工具如
imp,exp,sqllda的.说禁绝你也别误导呀.
13.筋疲力竭的Pro*C程序员们:
在函数foo中你已声了然
EXECSQLWHENEVERSQLERRORGOTOsql_err;
在另外一个函数bar里你只想冷静地利用
EXECSQLWHENEVERSQLERRORCONTINUE;
但你没出格声明,Pro*C的预编译器会告知你,它在函数bar中找不到sql_err
标号!!!它能够跨函数利用标号.它也敢自称是一个预处置器跟编译器沾沾
边,方才用陈桥五笔敲出来的处置器三个字刚好跟处置品是一样的键码,我看
叫处置品却是名符实在.
14.DDL语句的用户们:
altertabletnameadd(col1type...);
altertabletnamemodify(col1type...);
altertabletnamedropcolumn(col1);
为什么非要在drop里多出来一个column?
15.定名
user_cons_columns;
user_constraints;
user_rollback_segs;
它真的要把segment一切缩写为segs吗?把constraints缩写为cons?把
columns缩写为cols?不,ORACLE的程序员们想怎样就怎样.他们是以为
单词的全称太长了吗?不见得,descdba_users;看一下
看看INITIAL_RSRC_CONSUMER_GROUP字段,看看temporary_tablespace字段.
再来看看一下createtable:
createtabletname(col1type,...)storage(initial..next..
minextents..maxextents..)...;
descuser_tables;
inital_extent
next_extent
minextents
maxextents
不要问他们为何有的用双数有的用单数,由于他们是ORACLE.他们想如许.
dba_tables中owner
dba_sequences中叫sequence_owner
user_tab_columns是关于一张表中列信息的,_tab_columns
user_cons_columns是关于表中字段的束缚信息的,_cons_columns
一个相关的问题是第三方支持的资格问题,尽管直接来自厂商的支持和服务可以一定程度上减缓这个问题,但是,对于有的企业来说,通过强有力的本地化支持显然更有吸引力。 |
|