随笔分类 -  数据库开发

关于Update语句在不同数据库中的差别
摘要:Oralce和DB2都支持的语法:UPDATEASET(A1,A2,A3)=(SELECTB1,B2,B3FROMBWHEREA.ID=B.ID)MS SQL Server不支持这样的语法,相对应的写法为:UPDATEASETA1=B1,A2=B2,A3=B3FROMALEFTJOINBONA.ID=B.ID个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVE... 阅读全文
posted @ 2007-09-03 09:26 老狐狸 阅读(282) 评论(0) 推荐(0)
出错存储过程
摘要:包头:create or replace package ErrorLog is -- Author : tuil -- Created : 2006-9-18 13:45:53 -- Purpose : -- Public type declarations TYPE type_cur IS REF CURSOR; procedure InsertLogError(ErrorId in var... 阅读全文
posted @ 2006-10-24 14:49 老狐狸 阅读(234) 评论(0) 推荐(0)
F_GETTABLELID
摘要:createorreplacefunctionF_GETTABLELID(strTableNameINVARCHAR2DEFAULTNULL)returnVARCHAR2isResultVARCHAR2(9);StoO_rowcntINTEGER;strIndexNUMBER(9,0);BEGINNULL;BEGINStoO_rowcnt:=0;UPDATESS_TablesIDTSETt.Cur... 阅读全文
posted @ 2006-10-24 14:47 老狐狸 阅读(195) 评论(0) 推荐(0)
创建层次查询
摘要:select level, lpad(' ', 2 * level - 1, '--') || t.deptname, t.deptid from lbi_department tstart with t.deptid = 1connect by prior t.deptid = t.parentid 阅读全文
posted @ 2006-08-17 13:39 老狐狸 阅读(171) 评论(0) 推荐(0)
case when用法和and 后加条件
摘要:SELECTA.OrderSIDasInvId,E.BizInvTypeasTypeCode,E.TypeNameasTypeName,B.SimpleNameasCorpName,C.StorNameasStorName,CASEWHENF_BS001QRYIONOTICE.UnitLevel_='1'THEN-A.TotalDefQty/250WHENF_BS001QRYIONOTICE.Un... 阅读全文
posted @ 2006-07-18 13:19 老狐狸 阅读(2365) 评论(0) 推荐(0)
exp/imp导出导入工具的使用
摘要:imp username/password@linkName file=fileName tables=(tableName,tableName)一. 导出工具 exp1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移 它有三种模式: a. 用户模式: 导出用户所有对象以及对象中的数据; ... 阅读全文
posted @ 2006-07-12 16:54 老狐狸 阅读(363) 评论(0) 推荐(0)
摘要:包头: create or replace package GetMonthPlan is TYPE T_MonthPlan IS REF CURSOR; Procedure p_GetMonthStockPlan(sYear in varchar, sMonth in varchar, ... 阅读全文
posted @ 2006-06-23 17:19 老狐狸 阅读(345) 评论(0) 推荐(0)
创建记录、数组
摘要:--创建记录 TYPE REC_PERSON IS RECORD( PersonSID varchar2(50), PersonName varchar2(60), Gender varchar2(10), DepartSID varchar2(50), IsSaler char(1), IsAgent char(1), IsDel... 阅读全文
posted @ 2006-06-16 16:00 老狐狸 阅读(149) 评论(0) 推荐(0)
关闭远程数据库连接
摘要:sSQL := 'alter session close database link ' || sDataSource; execute immediate sSQL; 阅读全文
posted @ 2006-06-16 15:58 老狐狸 阅读(245) 评论(0) 推荐(0)
创建游标
摘要:TYPE V_CUR IS REF CURSOR; CUR V_CUR;open CUR for sSQL; LOOP FETCH CUR INTO R_PERSON; EXIT WHEN CUR%NOTFOUND; i := i+ 1; table_person_list(i) := R_PERSON; END LOOP; CLOSE CUR; 阅读全文
posted @ 2006-06-16 15:57 老狐狸 阅读(224) 评论(0) 推荐(0)
创建新的序列
摘要:select NVL(count(Sequence_Name), 0) into nCount from all_sequences where Sequence_Owner = 'LSP' and Sequence_Name = 'SEQ_SHELFID'; if nCount > 0 then sSQL := 'drop sequence LSP.SEQ_SHE... 阅读全文
posted @ 2006-06-16 15:54 老狐狸 阅读(196) 评论(0) 推荐(0)
创建隐式游标
摘要:for cura in (select DeptId,parentId from lsp.lbi_department where parentId = curId order by DeptId) loop insert into TMP_TEST(id,parentId) values(cura.id,cura.parentId); Insert... 阅读全文
posted @ 2006-06-16 15:52 老狐狸 阅读(177) 评论(0) 推荐(0)
创建临时表
摘要:select count(*) into nCount from user_tables where table_name = 'TT_DEPARTPERSONRELATION';sSQL := 'Create global temporary table TT_DepartPersonRelation( DepartSID varchar2(50), Pers... 阅读全文
posted @ 2006-06-16 15:50 老狐狸 阅读(244) 评论(0) 推荐(0)
更新表(多表相关联)
摘要:update f_shortforest forest set forest.forestquantity = (select (decode(sum(detail.quantity), null, 0, ... 阅读全文
posted @ 2006-06-16 15:47 老狐狸 阅读(234) 评论(0) 推荐(0)
更新表(如果记录已存则更新,不存在则插入)
摘要:MERGE INTO course cUSING (SELECT course_name, period,course_hoursFROM course_updates) cuON (c.course_name = cu.course_nameAND c.period = cu.period)WHEN MATCHED THENUPDATESET c.course_hours = cu.course... 阅读全文
posted @ 2006-06-16 15:45 老狐狸 阅读(306) 评论(0) 推荐(0)