用spt更新ORACLE
来源:优易学  2011-12-9 18:22:10   【优易学:中国教育考试门户网】   资料下载   IT书店

 

TEXT TO lcScript TEXTMERGE NOSHOW PRETEXT 2 
drop table Presidents 
ENDTEXT 
IF NOT THIS.RunSQL(lcScript) 
RETURN .f. 
ENDIF 
TEXT TO lcScript TEXTMERGE NOSHOW PRETEXT 2 
create table Presidents 
(keyid number(4), 
loginid varchar2(8), 
lastname varchar2(30), 
firstname varchar2(30), 
updated_by varchar2(8)) 
ENDTEXT 
IF NOT THIS.RunSQL(lcScript) 
RETURN .f. 
ENDIF 
TEXT TO lcScript TEXTMERGE NOSHOW PRETEXT 2 
create sequence S_Presidents start with 1 increment by 1 nocache 
ENDTEXT 
IF NOT THIS.RunSQL(lcScript) 
RETURN .f. 
ENDIF 
TEXT TO lcScript TEXTMERGE NOSHOW PRETEXT 2 
create or replace trigger Presidents_BEFORE_INSUPDT 
before insert or update on <>.Presidents 
for each row 
declare 
v_Id Number; 
BEGIN 
If :new.KeyID Is Null or :new.KeyID < 1 Then 
select S_Presidents.nextval into v_Id from dual; 
:new.KeyID := v_Id; 
End If; 
END; 
ENDTEXT 
IF NOT THIS.RunSQL(lcScript) 
RETURN .f. 
ENDIF 
ENDPROC 
PROCEDURE Cr8_SProcs 
LOCAL lcScript, lnRetVal 
TEXT TO lcScript NOSHOW PRETEXT 2 
CREATE OR REPLACE PROCEDURE PrezInsert 
(cLoginID IN Presidents.LoginID%Type, 
cLastName IN Presidents.LastName%Type, 
cFirstName IN Presidents.FirstName%Type, 
cUpdated_By IN Presidents.Updated_By%Type) AS 
BEGIN 
INSERT INTO Presidents 
(LoginID, LastName, FirstName, Updated_By) 
VALUES 
(cLoginID, cLastName, cFirstName, cUpdated_By); 
END; 
ENDTEXT 
IF NOT THIS.RunSQL(lcScript) 
RETURN .f. 
ENDIF 
TEXT TO lcScript NOSHOW PRETEXT 2 
CREATE OR REPLACE PROCEDURE PrezUpdateAll 
(cNameMask IN Presidents.LastName%Type, 
cUpdated_By IN Presidents.Updated_By%Type, 
nRowCount OUT NUMBER) AS 
BEGIN 
UPDATE Presidents 
SET Updated_By = cUpdated_By 
WHERE LastName LIKE cNameMask; 
nRowCount := SQL%ROWCOUNT; 
END; 
ENDTEXT 
IF NOT THIS.RunSQL(lcScript) 
RETURN .f. 
ENDIF 
TEXT TO lcScript NOSHOW PRETEXT 2 
CREATE OR REPLACE PROCEDURE PrezUpdate 
(nRowCount OUT NUMBER, 
nKeyID IN Presidents.KeyID%Type, 
cLoginID IN Presidents.LoginID%Type, 
cLastName IN Presidents.LastName%Type, 
cFirstName IN Presidents.FirstName%Type, 
cUpdated_By IN Presidents.Updated_By%Type) AS 
BEGIN 
UPDATE Presidents 
SET LoginID = cLoginID, 
LastName = cLastName, 
FirstName = cFirstName, 
Updated_By = cUpdated_By 
WHERE KeyID = nKeyID; 
nRowCount := SQL%ROWCOUNT; 
END; 
ENDTEXT 
IF NOT THIS.RunSQL(lcScript) 
RETURN .f. 
ENDIF 
ENDPROC 
PROCEDURE InsertData 
LOCAL laData(42, 3) 
laData[ 1, 1] = ’GWASHING’ 
laData[ 1, 2] = ’Washington’ 
laData[ 1, 3] = ’George’ 
laData[ 2, 1] = ’JADAMS’ 
laData[ 2, 2] = ’Adams’ 
laData[ 2, 3] = ’John’ 
laData[ 3, 1] = ’TJEFFERS’ 
laData[ 3, 2] = ’Jefferson’ 
laData[ 3, 3] = ’Thomas’ 
laData[ 4, 1] = ’JMADISON’ 
laData[ 4, 2] = ’Madison’ 
laData[ 4, 3] = ’James’ 
laData[ 5, 1] = ’JMONROE’ 
laData[ 5, 2] = ’Monroe’ 
laData[ 5, 3] = ’James’ 
laData[ 6, 1] = ’JQADAMS’ 
laData[ 6, 2] = ’Adams’ 
laData[ 6, 3] = ’John Q’ 
laData[ 7, 1] = ’AJACKSON’ 
laData[ 7, 2] = ’Jackson’ 
laData[ 7, 3] = ’Andrew’ 
laData[ 8, 1] = ’MVBUREN’ 
laData[ 8, 2] = ’Van Buren’ 
laData[ 8, 3] = ’Martin’ 
laData[ 9, 1] = ’WHARRISO’ 
laData[ 9, 2] = ’Harrison’ 
laData[ 9, 3] = ’William’ 
laData[10, 1] = ’JTYLER’ 
laData[10, 2] = ’Tyler’ 
laData[10, 3] = ’John’ 
laData[11, 1] = ’JPOLK’ 
laData[11, 2] = ’Polk’ 
laData[11, 3] = ’James’ 
laData[12, 1] = ’ZTAYLOR’ 
laData[12, 2] = ’Taylor’ 
laData[12, 3] = ’Zachary’ 
laData[13, 1] = ’MFILLMOR’ 
laData[13, 2] = ’Fillmore’ 
laData[13, 3] = ’Millard’ 
laData[14, 1] = ’FPIERCE’ 
laData[14, 2] = ’Pierce’ 
laData[14, 3] = ’Franklin’ 
laData[15, 1] = ’JBUCHANA’ 
laData[15, 2] = ’Buchanan’ 
laData[15, 3] = ’James’ 
laData[16, 1] = ’ALINCOLN’ 
laData[16, 2] = ’Lincoln’ 
laData[16, 3] = ’Abe’

 

上一页  [1] [2] [3] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训