12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827 |
- /*
- * VERSION: 12.3.1
- * LAST MODIFIED TIME: 2023-11-28
- */
- ----管理员工具包------------------
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_DBA
- IS
- PROCEDURE KILL_TRANS(NODEID INTEGER,TRANID BIGINT);
- PROCEDURE KILL_SESSION(NODEID INTEGER,SESSID INTEGER);
- PROCEDURE KILL_SESSION_TRANS(NODEID INTEGER,SESSID INTEGER);
- END SYSDBA.DBMS_DBA;
- /
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_DBA
- IS
- PROCEDURE KILL_TRANS(NODEID INTEGER,TRANID BIGINT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_KILL_TRANS";
-
- PROCEDURE KILL_SESSION(NODEID INTEGER,SESSID INTEGER)
- IS
- LANGUAGE "C"
- NAME "BLDIN_KILL_SESSION";
-
- PROCEDURE KILL_SESSION_TRANS(NODEID INTEGER,SESSID INTEGER)
- IS
- LANGUAGE "C"
- NAME "BLDIN_KILL_SESSION_TRANS";
- END SYSDBA.DBMS_DBA;
- /
- /***********创建DBMS_OUTPUT包*****************************/
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_OUTPUT
- IS
- PROCEDURE PUT_LINE(str VARCHAR);
- END SYSDBA.DBMS_OUTPUT;
- /
- ----包体
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_OUTPUT
- IS
-
- PROCEDURE PUT_LINE(str VARCHAR)
- IS
- BEGIN
- send_msg(str);
- END;
-
- END SYSDBA.DBMS_OUTPUT;
- /
- /***********创建DBMS_INFO包(用于查询系统信息)***************/
- ----包头
- CREATE PACKAGE SYSDBA.DBMS_INFO
- IS
- SUBTYPE FileInfo IS RECORD(IS_DIR BOOLEAN,DB_PATH VARCHAR(256),OS_PATH VARCHAR(256));
- SUBTYPE FInfoTab IS TABLE OF FileInfo;
- FUNCTION FILE_LIST(_dir VARCHAR) RETURN FInfoTab;
- END SYSDBA.DBMS_INFO;
- /
- ----包体
- CREATE PACKAGE BODY SYSDBA.DBMS_INFO
- IS
- FUNCTION FILE_LIST(_dir VARCHAR) RETURN FInfoTab
- IS
- LANGUAGE "C"
- NAME "BLDIN_FILE_LIST";
- END SYSDBA.DBMS_INFO;
- /
- ----网络测试包------------------
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_TEST
- IS
- FUNCTION TEST_PING_PONG1(TARG_NID INTEGER,PACK_NUM INTEGER) RETURN INTEGER;
- FUNCTION TEST_PING_PONG2(TARG_NID INTEGER,PACK_SIZE INTEGER,PACK_NUM INTEGER) RETURN INTEGER;
- FUNCTION TEST_MSG_SEND1(TARG_NID INTEGER,PACK_SIZE INTEGER,PACK_NUM INTEGER) RETURN INTEGER;
- FUNCTION TEST_MSG_SEND2(TARG_NID INTEGER,PACK_SIZE INTEGER,PACK_NUM INTEGER) RETURN INTEGER;
- FUNCTION TEST_RPC_SEND(TARG_NID INTEGER,SEND_SIZE INTEGER) RETURN INTEGER;
- END SYSDBA.DBMS_TEST ;
- /
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_TEST
- IS
- FUNCTION TEST_PING_PONG1(TARG_NID INTEGER,PACK_NUM INTEGER) RETURN INTEGER
- IS
- LANGUAGE "C"
- NAME "BLDIN_TEST_PING_PONG1";
- FUNCTION TEST_PING_PONG2(TARG_NID INTEGER,PACK_SIZE INTEGER,PACK_NUM INTEGER) RETURN INTEGER
- IS
- LANGUAGE "C"
- NAME "BLDIN_TEST_PING_PONG2";
-
- FUNCTION TEST_MSG_SEND1(TARG_NID INTEGER,PACK_SIZE INTEGER,PACK_NUM INTEGER) RETURN INTEGER
- IS
- LANGUAGE "C"
- NAME "BLDIN_TEST_MSG_SEND1";
-
- FUNCTION TEST_MSG_SEND2(TARG_NID INTEGER,PACK_SIZE INTEGER,PACK_NUM INTEGER) RETURN INTEGER
- IS
- LANGUAGE "C"
- NAME "BLDIN_TEST_MSG_SEND2";
-
- FUNCTION TEST_RPC_SEND(TARG_NID INTEGER,SEND_SIZE INTEGER) RETURN INTEGER
- IS
- LANGUAGE "C"
- NAME "BLDIN_TEST_RPC_SEND";
- END SYSDBA.DBMS_TEST ;
- /
- -----统计信息设置包-------------
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_STAT
- IS
- PROCEDURE SET_STAT_INFO(TABLE_NAME VARCHAR,FIELD_NAME VARCHAR,MAX_VAL VARCHAR,MIN_VAL VARCHAR,REPET_RATE DOUBLE,DISPERSION DOUBLE);
- PROCEDURE ANALYZE_TABLE(TABLE_NAME VARCHAR,FIELD_NAME VARCHAR,SAMPLE_RATE INTEGER,HSITOGRAM_NUM INTEGER);
- PROCEDURE SET_ANALYZE_SCHEME(TABLE_NAME VARCHAR,SCHE_NAME VARCHAR,ENABLE BOOL);
- PROCEDURE SET_ANALYZE_PARAM(TABLE_NAME VARCHAR,MODE TINYINT,THRESHOLD TINYINT,LEVEL TINYINT);
- PROCEDURE SET_ANALYZE_OPTIMIZE(TABLE_NAME VARCHAR,PERIOD SMALLINT,MODE TINYINT);
- PROCEDURE SET_ANALYZE_COLUMNS(TABLE_NAME VARCHAR,FIELD_NAME VARCHAR,STATUS TINYINT);
- FUNCTION GET_STAT_INFO(TABLE_NAME VARCHAR) RETURN VARCHAR;
- END SYSDBA.DBMS_STAT ;
- /
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_STAT
- IS
- PROCEDURE SET_STAT_INFO(TABLE_NAME VARCHAR,FIELD_NAME VARCHAR, MAX_VAL VARCHAR,MIN_VAL VARCHAR,REPET_RATE DOUBLE,DISPERSION DOUBLE)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_STAT_INFO";
- PROCEDURE ANALYZE_TABLE(TABLE_NAME VARCHAR,FIELD_NAME VARCHAR,SAMPLE_RATE INTEGER,HSITOGRAM_NUM INTEGER)
- IS
- LANGUAGE "C"
- NAME "BLDIN_ANALYZE_TABLE";
- PROCEDURE SET_ANALYZE_SCHEME(TABLE_NAME VARCHAR,SCHE_NAME VARCHAR,ENABLE BOOL)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_ANALYZE_SCHEME";
- PROCEDURE SET_ANALYZE_PARAM(TABLE_NAME VARCHAR,MODE TINYINT,THRESHOLD TINYINT,LEVEL TINYINT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_ANALYZE_PARAM";
- PROCEDURE SET_ANALYZE_OPTIMIZE(TABLE_NAME VARCHAR,PERIOD SMALLINT,OPTI_MODE TINYINT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_ANALYZE_OPTIMIZE";
- PROCEDURE SET_ANALYZE_COLUMNS(TABLE_NAME VARCHAR,FIELD_NAME VARCHAR,STATUS TINYINT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_ANALYZE_COLUMNS";
- FUNCTION GET_STAT_INFO(TABLE_NAME VARCHAR) RETURN VARCHAR
- IS
- LANGUAGE "C"
- NAME "BLDIN_GET_STAT_INFO";
-
- END SYSDBA.DBMS_STAT ;
- /
- ----系统导入包,使用流方式快速导入数据,主要导入完成需要手动创建索引-------
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_IMPORT
- IS
- /* 列分隔符格式数据导入 */
- FUNCTION IMPORT_TABLE_FROM_TXT(TABLE_NAME VARCHAR, /* 表名 */
- MODE INTEGER, /* 追加模式 1:append 2:replace 异常值:append*/
- FLD_SEPARATOR VARCHAR, /* 列分隔符(仅支持单字符) */
- REINDEX BOOL) /* 已暂未使用 */
- RETURN BIGINT; /* 返回导入行数 */
- /* 长度指示格式数据导入 */
- FUNCTION IMPORT_TABLE_FROM_NET(TABLE_NAME VARCHAR, /* 表名 */
- MODE INTEGER, /* 追加模式 1:append 2:replace 异常值:append*/
- REINDEX BOOL) /* 已暂未使用 */
- RETURN BIGINT; /* 返回导入行数 */
- END SYSDBA.DBMS_TEST;
- /
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_IMPORT
- IS
- FUNCTION IMPORT_TABLE_FROM_TXT(TABLE_NAME VARCHAR,MODE INTEGER,FLD_SEPARATOR VARCHAR,REINDEX BOOL) RETURN BIGINT
- IS
- LANGUAGE "C"
- NAME "BLDIN_IMPORT_TABLE_FROM_TXT";
-
- FUNCTION IMPORT_TABLE_FROM_NET(TABLE_NAME VARCHAR,MODE INTEGER,REINDEX BOOL) RETURN BIGINT
- IS
- LANGUAGE "C"
- NAME "BLDIN_IMPORT_TABLE_FROM_NET";
- END SYSDBA.DBMS_IMPORT ;
- /
- /***********创建DBMS_SCHEDULER包(用于查询系统信息)***************/
- ----包头
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_SCHEDULER
- AUTHID CURRENT_USER
- IS
- PROCEDURE CREATE_JOB (
- job_name IN VARCHAR2,
- job_type IN VARCHAR2,
- job_action IN VARCHAR2,
- number_of_arguments IN PLS_INTEGER DEFAULT 0,
- start_date IN TIMESTAMP DEFAULT NULL,
- repeat_interval IN VARCHAR2 DEFAULT NULL,
- end_date IN TIMESTAMP DEFAULT NULL,
- job_class IN VARCHAR2 DEFAULT 'DEFAULT_JOB_CLASS',
- enabled IN BOOLEAN DEFAULT FALSE,
- auto_drop IN BOOLEAN DEFAULT TRUE,
- comments IN VARCHAR2 DEFAULT NULL);
- PROCEDURE SET_ATTRIBUTE (
- name IN VARCHAR2,
- attribute IN VARCHAR2,
- value IN VARCHAR2);
- PROCEDURE SET_ATTRIBUTE (
- name IN VARCHAR2,
- attribute IN VARCHAR2,
- value IN TIMESTAMP);
-
- PROCEDURE SET_ATTRIBUTE (
- name IN VARCHAR2,
- attribute IN VARCHAR2,
- value IN PLS_INTEGER);
-
- PROCEDURE SET_ATTRIBUTE (
- name IN VARCHAR2,
- attribute IN VARCHAR2,
- value IN BOOLEAN);
-
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN VARCHAR2);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN VARCHAR2);
-
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN TINYINT);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN TINYINT);
-
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN SMALLINT);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN SMALLINT);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN INTEGER);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN INTEGER);
-
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN BIGINT);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN BIGINT);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN FLOAT);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN FLOAT);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN DOUBLE);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN DOUBLE);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN NUMERIC);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN NUMERIC);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN BOOLEAN);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN BOOLEAN);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN TIME);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN TIME);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN DATE);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN DATE);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN DATETIME);
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN DATETIME);
- PROCEDURE RUN_JOB (
- job_name IN VARCHAR2,
- use_current_session IN BOOLEAN DEFAULT TRUE);
- PROCEDURE ENABLE (
- name IN VARCHAR2);
-
- PROCEDURE DISABLE (
- name IN VARCHAR2,
- force IN BOOLEAN DEFAULT FALSE);
-
- PROCEDURE DROP_JOB (
- job_name IN VARCHAR2,
- force IN BOOLEAN DEFAULT FALSE);
-
- FUNCTION JOB_NEXT_RUNTIME(
- job_name IN VARCHAR2,
- last_rt IN DATETIME) RETURN DATETIME;
- FUNCTION NEXT_RUNTIME(
- repeat_interval IN VARCHAR2,
- last_rt IN DATETIME) RETURN DATETIME;
-
- END SYSDBA.DBMS_SCHEDULER;
- /
- ----包体
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_SCHEDULER
- IS
- PROCEDURE CREATE_JOB (
- job_name IN VARCHAR2,
- job_type IN VARCHAR2,
- job_action IN VARCHAR2,
- number_of_arguments IN PLS_INTEGER DEFAULT 0,
- start_date IN TIMESTAMP DEFAULT NULL,
- repeat_interval IN VARCHAR2 DEFAULT NULL,
- end_date IN TIMESTAMP DEFAULT NULL,
- job_class IN VARCHAR2 DEFAULT 'DEFAULT_JOB_CLASS',
- enabled IN BOOLEAN DEFAULT FALSE,
- auto_drop IN BOOLEAN DEFAULT TRUE,
- comments IN VARCHAR2 DEFAULT NULL)
- IS
- LANGUAGE "C"
- NAME "BLDIN_CREATE_JOB";
- PROCEDURE SET_ATTRIBUTE (
- name IN VARCHAR2,
- attribute IN VARCHAR2,
- value IN VARCHAR2)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_SET_STR_ATTRIBUTE";
- PROCEDURE SET_ATTRIBUTE (
- name IN VARCHAR2,
- attribute IN VARCHAR2,
- value IN TIMESTAMP)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_SET_DT_ATTRIBUTE";
-
- PROCEDURE SET_ATTRIBUTE (
- name IN VARCHAR2,
- attribute IN VARCHAR2,
- value IN PLS_INTEGER)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_SET_I4_ATTRIBUTE";
-
- PROCEDURE SET_ATTRIBUTE (
- name IN VARCHAR2,
- attribute IN VARCHAR2,
- value IN BOOLEAN)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_SET_BOOL_ATTRIBUTE";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN VARCHAR2)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_STR_ARG_BY_ORD";
-
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN VARCHAR2)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_STR_ARG_BY_NAME";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN INTEGER)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_I4_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN INTEGER)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_I4_ARG_BY_NAME";
-
-
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN TINYINT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_I1_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN TINYINT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_I1_ARG_BY_NAME";
-
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN SMALLINT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_I2_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN SMALLINT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_I2_ARG_BY_NAME";
-
-
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN BIGINT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_I8_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN BIGINT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_I8_ARG_BY_NAME";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN FLOAT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_R4_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN FLOAT)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_R4_ARG_BY_NAME";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN DOUBLE)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_R8_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN DOUBLE)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_R8_ARG_BY_NAME";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN NUMERIC)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_NUM_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN NUMERIC)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_NUM_ARG_BY_NAME";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN BOOLEAN)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_BOOL_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN BOOLEAN)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_BOOL_ARG_BY_NAME";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN TIME)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_TIME_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN TIME)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_TIME_ARG_BY_NAME";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN DATE)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_DATE_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN DATE)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_DATE_ARG_BY_NAME";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_position IN PLS_INTEGER,
- argument_value IN DATETIME)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_DT_ARG_BY_ORD";
- PROCEDURE SET_JOB_ARGUMENT_VALUE (
- job_name IN VARCHAR2,
- argument_name IN VARCHAR2,
- argument_value IN DATETIME)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_JOB_DT_ARG_BY_NAME";
- PROCEDURE RUN_JOB (
- job_name IN VARCHAR2,
- use_current_session IN BOOLEAN DEFAULT TRUE)
- IS
- LANGUAGE "C"
- NAME "BLDIN_RUN_JOB";
-
- PROCEDURE ENABLE (
- name IN VARCHAR2)
- IS
- LANGUAGE "C"
- NAME "BLDIN_ENABLE_JOB";
-
-
- PROCEDURE DISABLE (
- name IN VARCHAR2,
- force IN BOOLEAN DEFAULT FALSE)
- IS
- LANGUAGE "C"
- NAME "BLDIN_DISABLE_JOB";
-
- PROCEDURE DROP_JOB (
- job_name IN VARCHAR2,
- force IN BOOLEAN DEFAULT FALSE)
- IS
- LANGUAGE "C"
- NAME "BLDIN_DROP_JOB";
- FUNCTION JOB_NEXT_RUNTIME(
- job_name IN VARCHAR2,
- last_rt IN DATETIME) RETURN DATETIME
- IS
- LANGUAGE "C"
- NAME "BLDIN_GET_JOB_NEXT_RUNTIME";
- FUNCTION NEXT_RUNTIME(
- repeat_interval IN VARCHAR2,
- last_rt IN DATETIME) RETURN DATETIME
- IS
- LANGUAGE "C"
- NAME "BLDIN_GET_NEXT_RUNTIME";
-
- END SYSDBA.DBMS_SCHEDULER;
- /
- /**************创建DBMS_SQL包********************/
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_SQL
- AUTHID CURRENT_USER
- IS
- --参数描述信息结构
- SUBTYPE TParaInfo IS RECORD(ParaName VARCHAR(128), --参数名
- ParaNo INTEGER, --编号
- ParaTid INTEGER, --类型ID
- ParaScale INTEGER, --精度标度
- BindState INTEGER); --绑定状态(0:未绑定 1:已绑定)
- SUBTYPE TParams IS TABLE OF TParaInfo;
- --结果字段描述信息结构
- SUBTYPE TResInfo IS RECORD(ResName VARCHAR(128), --输出字段名
- ResTid INTEGER, --输出字段类型
- ResScale INTEGER, --输出精度标度
- ResFlag INTEGER, --输出附加标志
- TargTid INTEGER, --接收变量的类型ID
- TargScale INTEGER); --接收变量的类型精度标度
- SUBTYPE TResults IS TABLE OF TResInfo;
- --游标对象结构
- SUBTYPE TCursor IS RECORD(StmtState INTEGER, --当前状态
- StmtType INTEGER, --parse返回的语句类型
- StmtSQL VARCHAR(2000), --SQL语句
- ObjPtr VARCHAR(20), --内部对象名(归系统使用)
- ParaInfos TParams, --参数描述表
- ResInfos TResults); --输出描述表
- SUBTYPE CursorVarr IS VARRAY(100) OF TCursor;
- --常量定义
- NATIVE INTEGER :=1;
-
- TYPE_BOOL INTEGER :=2;
- TYPE_I1 INTEGER :=3;
- TYPE_I2 INTEGER :=4;
- TYPE_I4 INTEGER :=5;
- TYPE_I8 INTEGER :=6;
- TYPE_NUMERIC INTEGER :=7;
- TYPE_R4 INTEGER :=8;
- TYPE_R8 INTEGER :=9;
- TYPE_DATE INTEGER :=10;
- TYPE_TIME INTEGER :=11;
- TYPE_TIMEZ INTEGER :=12;
- TYPE_DATETIME INTEGER :=13;
- TYPE_DATETIMEZ INTEGER :=14;
- TYPE_INTERVAL_Y INTEGER :=15;
- TYPE_INTERVAL_Y2M INTEGER :=16;
- TYPE_INTERVAL_M INTEGER :=17;
- TYPE_INTERVAL_D INTEGER :=18;
- TYPE_INTERVAL_D2H INTEGER :=19;
- TYPE_INTERVAL_H INTEGER :=20;
- TYPE_INTERVAL_D2M INTEGER :=21;
- TYPE_INTERVAL_H2M INTEGER :=22;
- TYPE_INTERVAL_MI INTEGER :=23;
- TYPE_INTERVAL_D2S INTEGER :=24;
- TYPE_INTERVAL_H2S INTEGER :=25;
- TYPE_INTERVAL_M2S INTEGER :=26;
- TYPE_INTERVAL_S INTEGER :=27;
- TYPE_ROWVER INTEGER :=28;
- TYPE_GUID INTEGER :=29;
- TYPE_STR INTEGER :=30;
- TYPE_CHAR INTEGER :=30;
- TYPE_VARCHAR INTEGER :=30;
- TYPE_CLOB INTEGER :=32;
- TYPE_BINARY INTEGER :=33;
- TYPE_BLOB INTEGER :=34;
- TYPE_ROWID INTEGER :=45;
-
- --SQL状态
- STMT_STATE_OPENED INTEGER := 1;
- STMT_STATE_PARSED INTEGER := 2;
- STMT_STATE_BINDED INTEGER := 3;
- STMT_STATE_DEFINED INTEGER := 4;
- STMT_STATE_EXCUTED INTEGER := 5;
- STMT_STATE_FETCHED INTEGER := 6;
- --游标对象数组
- Cursors CursorVarr;
-
- FUNCTION STROF_CURSOR(CurNo INTEGER) RETURN VARCHAR(5000);
- FUNCTION OPEN_CURSOR() RETURN INTEGER;
- FUNCTION IS_OPEN(c IN INTEGER) RETURN BOOLEAN;
- FUNCTION PARSE(CurNo INTEGER,StmtSQL VARCHAR,SqlType INTEGER) RETURN INTEGER;
- FUNCTION EXECUTE(CurNo INTEGER) RETURN INTEGER;
- FUNCTION FETCH_ROWS(CurNo INTEGER) RETURN INTEGER;
- FUNCTION CLOSE_CURSOR(CurNo INTEGER) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val BOOLEAN) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val TINYINT) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val SMALLINT) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTEGER) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val BIGINT) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val FLOAT) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val DOUBLE) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val NUMERIC) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val VARCHAR) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val CLOB) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val BLOB) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val TIME) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val TIME WITH TIME ZONE) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val DATE) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val DATETIME) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val DATETIME WITH TIME ZONE) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL YEAR) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL YEAR TO MONTH) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL MONTH) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL DAY) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL DAY TO HOUR) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL HOUR) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL DAY TO MINUTE) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL HOUR TO MINUTE) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL MINUTE) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL DAY TO SECOND) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL HOUR TO SECOND) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL MINUTE TO SECOND) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL SECOND) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val GUID) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val BINARY) RETURN INTEGER;
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val ROWID) RETURN INTEGER;
-
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT BOOLEAN) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT TINYINT) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT SMALLINT) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTEGER) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT BIGINT) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT FLOAT) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT DOUBLE) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT NUMERIC) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT VARCHAR) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT CLOB) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT BLOB) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT TIME) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT TIME WITH TIME ZONE) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT DATE) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT DATETIME) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT DATETIME WITH TIME ZONE) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL YEAR) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL YEAR TO MONTH) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MONTH) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO HOUR) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO MINUTE) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR TO MINUTE) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MINUTE) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO SECOND) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR TO SECOND) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MINUTE TO SECOND) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL SECOND) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT GUID) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT BINARY) RETURN INTEGER;
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT ROWID) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT BOOLEAN) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT TINYINT) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT SMALLINT) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTEGER) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT BIGINT) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT FLOAT) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT DOUBLE) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT NUMERIC) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT VARCHAR) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT CLOB) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT BLOB) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT TIME) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT TIME WITH TIME ZONE) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT DATE) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT DATETIME) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT DATETIME WITH TIME ZONE) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL YEAR) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL YEAR TO MONTH) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MONTH) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO HOUR) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO MINUTE) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR TO MINUTE) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MINUTE) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO SECOND) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR TO SECOND) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MINUTE TO SECOND) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL SECOND) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT GUID) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT BINARY) RETURN INTEGER;
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT ROWID) RETURN INTEGER;
- END SYSDBA.DBMS_SQL;
- /
- /**************创建DBMS_SQL包体********************/
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_SQL
- IS
- FUNCTION BLDIN_PARSE(sql_str VARCHAR,sys_obj OUT VARCHAR,paras_info OUT TParams,targs_info OUT TResults) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_PARSE";
- FUNCTION BLDIN_EXECUTE(ObjName VARCHAR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_EXECUTE";
-
- FUNCTION BLDIN_FETCH_ROWS (ObjName VARCHAR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_FETCH";
- FUNCTION BLDIN_CLOSE_CURSOR(Cur VARCHAR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_CLOSE_STMT";
- FUNCTION BLDIN_PARA_NAME_CMP(sor_name VARCHAR,targ_name VARCHAR) RETURN BOOLEAN
- IS LANGUAGE "C" NAME "BLDIN_PARA_NAME_CMP";
-
- FUNCTION BLDIN_BIND_BOOL(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val BOOLEAN) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_BOOL(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val BOOLEAN) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
- FUNCTION BLDIN_BIND_I1(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val TINYINT) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_I1(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val TINYINT) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_I2(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val SMALLINT) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_I2(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val SMALLINT) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_I4(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTEGER) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_I4(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTEGER) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_I8(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val BIGINT) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
- FUNCTION BLDIN_NAME_BIND_I8(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val BIGINT) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_R4(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val FLOAT) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_R4(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val FLOAT) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_R8(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val DOUBLE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_R8(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val DOUBLE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
- FUNCTION BLDIN_BIND_Str(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val VARCHAR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
- FUNCTION BLDIN_NAME_BIND_Str(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val VARCHAR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
- FUNCTION BLDIN_BIND_CLOB(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val CLOB) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_CLOB(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val CLOB) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
- FUNCTION BLDIN_BIND_BLOB(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val BLOB) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
- FUNCTION BLDIN_NAME_BIND_BLOB(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val BLOB) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
- FUNCTION BLDIN_BIND_T(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val TIME) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_T(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val TIME) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_TZ(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val TIME WITH TIME ZONE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_TZ(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val TIME WITH TIME ZONE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_D(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val DATE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
- FUNCTION BLDIN_NAME_BIND_D(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val DATE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
- FUNCTION BLDIN_BIND_DT(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val DATETIME) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
- FUNCTION BLDIN_NAME_BIND_DT(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val DATETIME) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_DTZ(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val DATETIME WITH TIME ZONE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
- FUNCTION BLDIN_NAME_BIND_DTZ(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val DATETIME WITH TIME ZONE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_IY(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL YEAR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
- FUNCTION BLDIN_NAME_BIND_IY(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL YEAR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_IY2M(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL YEAR TO MONTH) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_IY2M(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL YEAR TO MONTH) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_IM(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL MONTH) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_IM(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL MONTH) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_ID(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL DAY) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_ID(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL DAY) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_ID2H(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL DAY TO HOUR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_ID2H(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL DAY TO HOUR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_IH(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL HOUR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_IH(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL HOUR) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_ID2M(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL DAY TO MINUTE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_ID2M(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL DAY TO MINUTE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_IH2M(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL HOUR TO MINUTE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_IH2M(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL HOUR TO MINUTE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_IMI(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL MINUTE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_IMI(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL MINUTE) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_ID2S(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL DAY TO SECOND) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_ID2S(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL DAY TO SECOND) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_IH2S(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL HOUR TO SECOND) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_IH2S(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL HOUR TO SECOND) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_IM2S(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL MINUTE TO SECOND) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_IM2S(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL MINUTE TO SECOND) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_IS(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val INTERVAL SECOND) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_IS(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val INTERVAL SECOND) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_N(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val NUMERIC) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
- FUNCTION BLDIN_NAME_BIND_N(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val NUMERIC) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_GUID(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val GUID) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_GUID(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val GUID) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_BINARY(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val BINARY) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_BINARY(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val BINARY) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_BIND_ROWID(obj_name VARCHAR,para_no INTEGER,para_tid INTEGER,para_val ROWID) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND";
-
- FUNCTION BLDIN_NAME_BIND_ROWID(obj_name VARCHAR,para_name VARCHAR,para_tid INTEGER,para_val ROWID) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_BIND_BY_NAME";
-
- FUNCTION BLDIN_DEFINE_COLUMN (ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_DEFINE_COLUMN";
- FUNCTION BLDIN_COLUMN_VALUE_BOOL(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN BOOLEAN
- IS LANGUAGE "C" NAME "BLDIN_GET";
-
- FUNCTION BLDIN_COLUMN_VALUE_I1(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN TINYINT
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_I2(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN SMALLINT
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_I4(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTEGER
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_I8(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN BIGINT
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_R4(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN FLOAT
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_R8(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN DOUBLE
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_N(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN NUMERIC
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_STR(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN VARCHAR
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_CLOB(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN CLOB
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_BLOB(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN BLOB
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_T(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN TIME
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_TZ(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN TIME WITH TIME ZONE
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_D(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN DATE
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_DT(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN DATETIME
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_DTZ(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN DATETIME WITH TIME ZONE
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_IY(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL YEAR
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_IY2M(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL YEAR TO MONTH
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_IM(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL MONTH
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_ID(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL DAY
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_ID2H(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL DAY TO HOUR
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_IH(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL HOUR
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_ID2M(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL DAY TO MINUTE
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_IH2M(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL HOUR TO MINUTE
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_IMI(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL MINUTE
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_ID2S(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL DAY TO SECOND
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_IH2S(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL HOUR TO SECOND
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_IM2S(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL MINUTE TO SECOND
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_IS(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN INTERVAL SECOND
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_GUID(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN GUID
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_BINARY(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN BINARY
- IS LANGUAGE "C" NAME "BLDIN_GET";
- FUNCTION BLDIN_COLUMN_VALUE_ROWID(ObjName VARCHAR,ColNo INTEGER,var_tid INTEGER,var_scale INTEGER) RETURN ROWID
- IS LANGUAGE "C" NAME "BLDIN_GET";
- /******************检查序号范围***********/
- FUNCTION CHECK_CURNO_RANGE(CurNo INTEGER) RETURN INTEGER
- IS
- BEGIN
- IF (CurNo ISNULL OR CurNo<1 OR CurNo>100) THEN
- RAISE_APPLICATION_ERROR(-1002,'游标序号错误');
- RETURN -1;
- END IF;
- END;
- /******************检查存在性***********/
- FUNCTION CHECK_CURNO_EXIST(CurNo INTEGER) RETURN INTEGER
- IS
- BEGIN
- IF cursors(CurNo).StmtState ISNULL THEN
- RAISE_APPLICATION_ERROR(-1003,'序号为'||CurNo||'的游标不存在');
- RETURN -1;
- ENDIF;
- END;
- /******************检查语句状态***********/
- FUNCTION CHECK_CURNO_STATE(CurNo INTEGER,STATE INTEGER) RETURN INTEGER
- IS
- BEGIN
- IF STATE = STMT_STATE_PARSED AND cursors(CurNo).StmtState < STMT_STATE_PARSED THEN
- RAISE_APPLICATION_ERROR(-1005,'序号为'||CurNo||'的游标未经过parse阶段');
- RETURN -1;
- ELSIF STATE = STMT_STATE_EXCUTED AND cursors(CurNo).StmtState < STMT_STATE_EXCUTED THEN
- RAISE_APPLICATION_ERROR(-1005,'序号为'||CurNo||'的游标未经过execute阶段');
- RETURN -1;
- ELSIF STATE = STMT_STATE_FETCHED AND cursors(CurNo).StmtState < STMT_STATE_FETCHED THEN
- RAISE_APPLICATION_ERROR(-1005,'序号为'||CurNo||'的游标未经过fetch阶段');
- RETURN -1;
- ENDIF;
- END;
- /******************检查序号**************/
- FUNCTION CHECK_CURNO(CurNo INTEGER,STATE INTEGER) RETURN INTEGER
- IS
- BEGIN
- --检查序号范围
- CHECK_CURNO_RANGE(CurNo);
- --检查存在性
- CHECK_CURNO_EXIST(CurNo);
- --检查语句状态
- CHECK_CURNO_STATE(CurNo,STATE);
- END;
- /******************检查序号范围和存在性**************/
- FUNCTION CHECK_CURNO_RANGE_AND_EXIST(CurNo INTEGER) RETURN INTEGER
- IS
- BEGIN
- --检查序号范围
- CHECK_CURNO_RANGE(CurNo);
- --检查存在性
- CHECK_CURNO_EXIST(CurNo);
- END;
- /******************检查参数是否已绑定**************/
- FUNCTION CHECK_PARA_BIND_STATE(Paras TParams) RETURN INTEGER
- IS
- para TParaInfo;
- BEGIN
- --遍历参数表检查所有参数是否都已绑定
- IF(Paras NOTNULL AND Paras.count>0) THEN
- FOR i IN 1 .. Paras.COUNT LOOP
- para:=Paras(i);
- if(para ISNULL OR para.BindState=0) THEN
- RAISE_APPLICATION_ERROR(-1006, '参数'||para.ParaName||'未绑定');
- ENDIF;
- END FOR;
- ENDIF;
- END;
- /******************设置绑定参数的绑定状态,更新绑定参数的类型**************/
- FUNCTION SET_BIND_PARA_INFO(Paras IN OUT TParams,ParaName VARCHAR,ParaTid INTEGER) RETURN INTEGER
- IS
- para_no INTEGER;
- BEGIN
- --按名给参数表中对应的参数标记绑定位,并更新绑定的参数类型。
- IF(Paras NOTNULL AND Paras.count>0) THEN
- para_no:=0;
- FOR i IN 1 .. Paras.COUNT LOOP
- if(Paras(i) NOTNULL AND (BLDIN_PARA_NAME_CMP(Paras(i).ParaName,ParaName) OR BLDIN_PARA_NAME_CMP(Paras(i).ParaName,(':'||ParaName)))) THEN
- Paras(i).BindState:=1;
- Paras(i).ParaTid:=ParaTid;
- para_no:=i;
- EXIT;
- ENDIF;
- END FOR;
- IF(para_no=0) THEN
- RAISE_APPLICATION_ERROR(-1007,'绑定参数对象'||ParaName||'不存在');
- ENDIF;
- ENDIF;
- END;
- /******************生成编号为CurNo的Cursor的文本信息,用于支持调试***********/
- FUNCTION STROF_CURSOR(CurNo INTEGER) RETURN VARCHAR(5000)
- IS
- cur TCursor;
- str VARCHAR(5000);
- para TParaInfo;
- targ TResInfo;
- BEGIN
- --检查序号范围
- CHECK_CURNO_RANGE(CurNo);
- --检查存在性
- CHECK_CURNO_EXIST(CurNo);
- cur:=cursors(CurNo);
- --输出状态,内部对象地址,SQL语句等
- str:='Cursor{' || NEWLINE || ' state=' || cur.StmtState || ' ' || 'ObjPtr=' || cur.ObjPtr
- || NEWLINE || ' SQL=' || cur.StmtSQL || NEWLINE;
- --输出参数信息
- IF(cur.ParaInfos NOTNULL AND cur.ParaInfos.count>0) THEN
- str:=str || ' Paras[' || NEWLINE;
- FOR i IN 1 .. cur.ParaInfos.COUNT LOOP
- para:=cur.ParaInfos(i);
- str:=str || ' (' || para.ParaName || ' ' || para.ParaNo || ' ' || para.ParaTid
- || ' ' || para.ParaScale || ')' || NEWLINE;
- END FOR;
- str:=str || ' ]' || NEWLINE;
- ENDIF;
- --输出结果集字段信息
- IF(cur.ResInfos NOTNULL AND cur.ResInfos.count>0) THEN
- str:=str || ' Targets[' || NEWLINE;
- FOR i IN 1 .. cur.ResInfos.COUNT LOOP
- targ:=cur.ResInfos(i);
- str:=str || ' (' || targ.ResName || ' ' || targ.ResTid || ' ' || targ.ResScale
- || ' ' || targ.ResFlag || ')'||NEWLINE;
- END FOR;
- str:=str || ' ]' || NEWLINE;
- ENDIF;
- --返回结果
- RETURN str;
- END;
-
- /*****************打开一个游标(分配一个游标对象,返回游标编号)**************/
- FUNCTION OPEN_CURSOR() RETURN INTEGER
- IS
- i INTEGER;
- BEGIN
- /*从数组中找出空值项,并在此生成cursor对象*/
- FOR i IN 1...100 LOOP
- IF (Cursors(i).StmtState ISNULL) THEN
- Cursors(i).StmtState := STMT_STATE_OPENED;
- RETURN i;
- END IF;
- END FOR;
- RAISE_APPLICATION_ERROR(-1001,'打开游标太多(最多100个)');
- RETURN -1;
- END;
- /*****************关闭一个游标*****************************/
- FUNCTION CLOSE_CURSOR(CurNo INTEGER) RETURN INTEGER
- IS
- BEGIN
- --检查序号范围
- CHECK_CURNO_RANGE(CurNo);
- --检查存在性
- CHECK_CURNO_EXIST(CurNo);
- --调用内部函数关闭内核对象
- IF (cursors(CurNo).ObjPtr NOTNULL) THEN
- BLDIN_CLOSE_CURSOR(cursors(CurNo).ObjPtr);
- ENDIF;
- cursors(CurNo).StmtState := NULL;
- cursors(CurNo).StmtSQL := NULL;
- cursors(CurNo).ObjPtr := NULL;
- cursors(CurNo).ParaInfos := NULL;
- cursors(CurNo).ResInfos := NULL;
- RETURN 1;
- END;
-
- /*****************检查一个游标是否处于开启状态***************************/
- FUNCTION IS_OPEN(CurNo IN INTEGER) RETURN BOOLEAN
- IS
- BEGIN
- --检查序号范围
- CHECK_CURNO_RANGE(CurNo);
- --检查存在性
- IF (cursors(CurNo).StmtState IS NULL) THEN
- RETURN FALSE;
- ELSE
- RETURN TRUE;
- END IF;
- END;
-
- /********************为Cursor设置一个SQL语句,并分析此语句*****************/
- FUNCTION PARSE(CurNo INTEGER,SqlStr VARCHAR,SqlType INTEGER) RETURN INTEGER
- IS
- cur TCursor;
- BEGIN
- --检查序号范围
- CHECK_CURNO_RANGE(CurNo);
- --检查存在性
- CHECK_CURNO_EXIST(CurNo);
- --设置SQL语句
- cursors(CurNo).StmtSQL:=SqlStr;
- --调用内核执行语句分析与规划
- cursors(CurNo).StmtType := BLDIN_PARSE(SqlStr,cursors(CurNo).ObjPtr,cursors(CurNo).ParaInfos,cursors(CurNo).ResInfos);
- --修改cursor状态
- IF(cursors(CurNo).StmtType>0) THEN
- cursors(CurNo).StmtState := STMT_STATE_PARSED; --表示已分析,但未绑定变量
- ELSE
- RAISE_APPLICATION_ERROR(-1004,'未知的SQL语句');
- END IF;
- --返回语句类型
- RETURN cursors(CurNo).StmtType;
- END;
-
- /**************执行游标语句*************/
- FUNCTION EXECUTE(CurNo INTEGER) RETURN INTEGER
- IS
- cur_name VARCHAR;
- ret INTEGER;
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- CHECK_PARA_BIND_STATE(cursors(CurNo).ParaInfos);
- ret := BLDIN_EXECUTE(cursors(CurNo).ObjPtr);
- cursors(CurNo).StmtState := STMT_STATE_EXCUTED;
- RETURN ret;
- END;
-
- /****************向前抓取一行*************/
- FUNCTION FETCH_ROWS(CurNo INTEGER) RETURN INTEGER
- IS
- ret INTEGER;
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_EXCUTED);
- ret := BLDIN_FETCH_ROWS(cursors(CurNo).ObjPtr);
- cursors(CurNo).StmtState := STMT_STATE_FETCHED;
- RETURN ret;
- END;
-
- /*********************绑定BOOLEAN型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val BOOLEAN) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_BOOL);
- RETURN BLDIN_NAME_BIND_BOOL(cursors(CurNo).ObjPtr,col_name,TYPE_BOOL,Val);
- END;
- /*********************绑定Tinyint型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val TINYINT) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_I1);
- RETURN BLDIN_NAME_BIND_I1(cursors(CurNo).ObjPtr,col_name,TYPE_I1,Val);
- END;
-
- /*********************绑定SmallInt型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val SMALLINT) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_I2);
- RETURN BLDIN_NAME_BIND_I2(cursors(CurNo).ObjPtr,col_name,TYPE_I2,Val);
- END;
-
- /*********************绑定Integer型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTEGER) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_I4);
- RETURN BLDIN_NAME_BIND_I4(cursors(CurNo).ObjPtr,col_name,TYPE_I4,Val);
- END;
-
- /*********************绑定BigInt型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val BIGINT) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_I8);
- RETURN BLDIN_NAME_BIND_I8(cursors(CurNo).ObjPtr,col_name,TYPE_I8,Val);
- END;
- /*********************绑定Float型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val Float) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_R4);
- RETURN BLDIN_NAME_BIND_R4(cursors(CurNo).ObjPtr,col_name,TYPE_R4,Val);
- END;
- /*********************绑定Double型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val DOUBLE) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_R8);
- RETURN BLDIN_NAME_BIND_R8(cursors(CurNo).ObjPtr,col_name,TYPE_R8,Val);
- END;
- /*********************绑定Numeric型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val NUMERIC) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_NUMERIC);
- RETURN BLDIN_NAME_BIND_N(cursors(CurNo).ObjPtr,col_name,TYPE_NUMERIC,Val);
- END;
- /*********************绑定CLOB型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val CLOB) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_CLOB);
- RETURN BLDIN_NAME_BIND_CLOB(cursors(CurNo).ObjPtr,col_name,TYPE_CLOB,Val);
- END;
- /*********************绑定BLOB型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val BLOB) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_BLOB);
- RETURN BLDIN_NAME_BIND_BLOB(cursors(CurNo).ObjPtr,col_name,TYPE_BLOB,Val);
- END;
-
- /*********************绑定VARCHAR型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val VARCHAR) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_VARCHAR);
- RETURN BLDIN_NAME_BIND_STR(cursors(CurNo).ObjPtr,col_name,TYPE_VARCHAR,Val);
- END;
- /*********************绑定Time型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val TIME) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_TIME);
- RETURN BLDIN_NAME_BIND_T(cursors(CurNo).ObjPtr,col_name,TYPE_TIME,Val);
- END;
- /*********************绑定 TIME WITH TIME ZONE 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val TIME WITH TIME ZONE) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_TIMEZ);
- RETURN BLDIN_NAME_BIND_TZ(cursors(CurNo).ObjPtr,col_name,TYPE_TIMEZ,Val);
- END;
- /*********************绑定Date型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val DATE) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_DATE);
- RETURN BLDIN_NAME_BIND_D(cursors(CurNo).ObjPtr,col_name,TYPE_DATE,Val);
- END;
- /*********************绑定DateTime型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val DATETIME) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_DATETIME);
- RETURN BLDIN_NAME_BIND_DT(cursors(CurNo).ObjPtr,col_name,TYPE_DATETIME,Val);
- END;
- /*********************绑定DATETIME WITH TIME ZONE型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val DATETIME WITH TIME ZONE) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_DATETIMEZ);
- RETURN BLDIN_NAME_BIND_DTZ(cursors(CurNo).ObjPtr,col_name,TYPE_DATETIMEZ,Val);
- END;
- /*********************绑定 INTERVAL YEAR 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL YEAR) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_Y);
- RETURN BLDIN_NAME_BIND_IY(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_Y,Val);
- END;
-
- /*********************绑定 INTERVAL YEAR TO MONTH 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL YEAR TO MONTH) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_Y2M);
- RETURN BLDIN_NAME_BIND_IY2M(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_Y2M,Val);
- END;
- /*********************绑定 INTERVAL MONTH 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL MONTH) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_M);
- RETURN BLDIN_NAME_BIND_IM(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_M,Val);
- END;
- /*********************绑定 INTERVAL DAY 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL DAY) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_D);
- RETURN BLDIN_NAME_BIND_ID(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_D,Val);
- END;
- /*********************绑定 INTERVAL DAY TO HOUR 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL DAY TO HOUR) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_D2H);
- RETURN BLDIN_NAME_BIND_ID2H(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_D2H,Val);
- END;
- /*********************绑定 INTERVAL HOUR 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL HOUR) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_H);
- RETURN BLDIN_NAME_BIND_IH(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_H,Val);
- END;
-
- /*********************绑定 INTERVAL DAY TO MINUTE 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL DAY TO MINUTE) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_D2M);
- RETURN BLDIN_NAME_BIND_ID2M(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_D2M,Val);
- END;
-
- /*********************绑定 INTERVAL HOUR TO MINUTE 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL HOUR TO MINUTE) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_H2M);
- RETURN BLDIN_NAME_BIND_IH2M(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_H2M,Val);
- END;
-
- /*********************绑定 INTERVAL MINUTE 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL MINUTE) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_MI);
- RETURN BLDIN_NAME_BIND_IMI(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_MI,Val);
- END;
-
- /*********************绑定 INTERVAL DAY TO SECOND 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL DAY TO SECOND) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_D2S);
- RETURN BLDIN_NAME_BIND_ID2S(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_D2S,Val);
- END;
-
- /*********************绑定 INTERVAL HOUR TO SECOND 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL HOUR TO SECOND) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_H2S);
- RETURN BLDIN_NAME_BIND_IH2S(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_H2S,Val);
- END;
-
- /*********************绑定 INTERVAL MINUTE TO SECOND 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL MINUTE TO SECOND) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_M2S);
- RETURN BLDIN_NAME_BIND_IM2S(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_M2S,Val);
- END;
-
- /*********************绑定 INTERVAL SECOND 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val INTERVAL SECOND) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_INTERVAL_S);
- RETURN BLDIN_NAME_BIND_IS(cursors(CurNo).ObjPtr,col_name,TYPE_INTERVAL_S,Val);
- END;
-
- /*********************绑定 GUID 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val GUID) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_GUID);
- RETURN BLDIN_NAME_BIND_GUID(cursors(CurNo).ObjPtr,col_name,TYPE_GUID,Val);
- END;
-
- /*********************绑定 BINARY 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val BINARY) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_BINARY);
- RETURN BLDIN_NAME_BIND_BINARY(cursors(CurNo).ObjPtr,col_name,TYPE_BINARY,Val);
- END;
-
- /*********************绑定 ROWID 型参数**********************/
- FUNCTION BIND_VARIABLE(CurNo INTEGER,ColName VARCHAR,Val ROWID) RETURN INTEGER
- IS
- col_name VARCHAR:=UPPER(ColName);
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_PARSED);
- SET_BIND_PARA_INFO(cursors(CurNo).ParaInfos,col_name,TYPE_ROWID);
- RETURN BLDIN_NAME_BIND_ROWID(cursors(CurNo).ObjPtr,col_name,TYPE_ROWID,Val);
- END;
-
- /***********定义输出类型Boolean***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT BOOLEAN) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_BOOL,-1);
- END;
-
- /***********定义输出类型TinyInt***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT TINYINT) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_I1,-1);
- END;
-
- /***********定义输出类型SmallInt***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT SMALLINT) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_I2,-1);
- END;
- /***********定义输出类型Integer***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTEGER) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_I4,-1);
- END;
- /***********定义输出类型Bigint***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT BIGINT) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_I8,-1);
- END;
- /***********定义输出类型Float***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT FLOAT) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_R4,-1);
- END;
- /***********定义输出类型Double***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT DOUBLE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_R8,-1);
- END;
- /***********定义输出类型NUMERIC***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT NUMERIC) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_NUMERIC,-1);
- END;
- /***********定义输出类型Char***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT CHAR) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_STR,-1);
- END;
- /***********定义输出类型Varchar***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT VARCHAR) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_STR,-1);
- END;
- /***********定义输出类型CLOB***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT CLOB) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_CLOB,-1);
- END;
- /***********定义输出类型BLOB***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT BLOB) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_BLOB,-1);
- END;
- /***********定义输出类型TIME***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT TIME) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_TIME,-1);
- END;
- /***********定义输出类型TIME WITH TIME ZONE ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT TIME WITH TIME ZONE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_TIMEZ,-1);
- END;
- /***********定义输出类型Date***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT DATE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_DATE,-1);
- END;
- /***********定义输出类型Datetime***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT DATETIME) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_DATETIME,-1);
- END;
- /***********定义输出类型DATETIME WITH TIME ZONE***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT DATETIME WITH TIME ZONE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_DATETIMEZ,-1);
- END;
-
- /***********定义输出类型 INTERVAL YEAR ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL YEAR) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_Y,-1);
- END;
-
- /***********定义输出类型 INTERVAL YEAR TO MONTH ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL YEAR TO MONTH) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_Y2M,-1);
- END;
-
- /***********定义输出类型 INTERVAL MONTH ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MONTH) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_M,-1);
- END;
-
- /***********定义输出类型 INTERVAL DAY ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_D,-1);
- END;
-
- /***********定义输出类型 INTERVAL DAY TO HOUR ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO HOUR) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_D2H,-1);
- END;
-
- /***********定义输出类型 INTERVAL HOUR ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_H,-1);
- END;
-
- /***********定义输出类型 INTERVAL DAY TO MINUTE ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO MINUTE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_D2M,-1);
- END;
-
- /***********定义输出类型 INTERVAL HOUR TO MINUTE ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR TO MINUTE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_H2M,-1);
- END;
-
- /***********定义输出类型 INTERVAL MINUTE ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MINUTE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_MI,-1);
- END;
-
- /***********定义输出类型 INTERVAL DAY TO SECOND ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO SECOND) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_D2S,-1);
- END;
-
- /***********定义输出类型 INTERVAL HOUR TO SECOND ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR TO SECOND) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_H2S,-1);
- END;
-
- /***********定义输出类型 INTERVAL MINUTE TO SECOND ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MINUTE TO SECOND) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_M2S,-1);
- END;
-
- /***********定义输出类型 INTERVAL SECOND ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL SECOND) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_S,-1);
- END;
-
- /***********定义输出类型 GUID ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT GUID) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_GUID,-1);
- END;
-
- /***********定义输出类型 BINARY ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT BINARY) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_BINARY,-1);
- END;
-
- /***********定义输出类型 ROWID ***********/
- FUNCTION DEFINE_COLUMN(CurNo INTEGER,ColNo INTEGER,Var OUT ROWID) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- RETURN BLDIN_DEFINE_COLUMN(cursors(CurNo).ObjPtr,ColNo,TYPE_ROWID,-1);
- END;
-
- /***********取BOOLEAN字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT BOOLEAN) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_BOOL(cursors(CurNo).ObjPtr,ColNo,TYPE_BOOL,-1);
- RETURN 1;
- END;
- /***********取TinyInt字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT TINYINT) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_I1(cursors(CurNo).ObjPtr,ColNo,TYPE_I1,-1);
- RETURN 1;
- END;
- /***********取SmallInt字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT SMALLINT) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_I2(cursors(CurNo).ObjPtr,ColNo,TYPE_I2,-1);
- RETURN 1;
- END;
-
- /***********取Integer字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTEGER) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_I4(cursors(CurNo).ObjPtr,ColNo,TYPE_I4,-1);
- RETURN 1;
- END;
-
- /***********取BigInt字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT BIGINT) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_I8(cursors(CurNo).ObjPtr,ColNo,TYPE_I8,-1);
- RETURN 1;
- END;
- /***********取Float字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT FLOAT) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_R4(cursors(CurNo).ObjPtr,ColNo,TYPE_R4,-1);
- RETURN 1;
- END;
- /***********取DOUBLE字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT DOUBLE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_R8(cursors(CurNo).ObjPtr,ColNo,TYPE_R8,-1);
- RETURN 1;
- END;
- /***********取Numeric字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT NUMERIC) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_N(cursors(CurNo).ObjPtr,ColNo,TYPE_NUMERIC,-1);
- RETURN 1;
- END;
- /***********取Char字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT CHAR) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_STR(cursors(CurNo).ObjPtr,ColNo,TYPE_STR,-1);
- RETURN 1;
- END;
- /***********取Varchar字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT VARCHAR) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_STR(cursors(CurNo).ObjPtr,ColNo,TYPE_STR,-1);
- RETURN 1;
- END;
- /***********取CLOB字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT CLOB) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_CLOB(cursors(CurNo).ObjPtr,ColNo,TYPE_CLOB,-1);
- RETURN 1;
- END;
- /***********取BLOB字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT BLOB) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_BLOB(cursors(CurNo).ObjPtr,ColNo,TYPE_BLOB,-1);
- RETURN 1;
- END;
- /***********取TIME字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT TIME) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_T(cursors(CurNo).ObjPtr,ColNo,TYPE_TIME,-1);
- RETURN 1;
- END;
- /***********取TIME WITH TIME ZONE字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT TIME WITH TIME ZONE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_TZ(cursors(CurNo).ObjPtr,ColNo,TYPE_TIMEZ,-1);
- RETURN 1;
- END;
- /***********取DATE字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT DATE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_D(cursors(CurNo).ObjPtr,ColNo,TYPE_DATE,-1);
- RETURN 1;
- END;
- /***********取DateTime字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT DATETIME) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_DT(cursors(CurNo).ObjPtr,ColNo,TYPE_DATETIME,-1);
- RETURN 1;
- END;
- /***********取DATETIME WITH TIME ZONE字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT DATETIME WITH TIME ZONE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_DTZ(cursors(CurNo).ObjPtr,ColNo,TYPE_DATETIMEZ,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL YEAR 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL YEAR) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_IY(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_Y,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL YEAR TO MONTH 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL YEAR TO MONTH) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_IY2M(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_Y2M,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL MONTH字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MONTH) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_IM(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_M,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL DAY 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_ID(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_D,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL DAY TO HOUR 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO HOUR) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_ID2H(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_D2H,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL HOUR 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_IH(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_H,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL DAY TO MINUTE 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO MINUTE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_ID2M(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_D2M,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL HOUR TO MINUTE 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR TO MINUTE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_IH2M(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_H2M,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL MINUTE 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MINUTE) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_IMI(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_MI,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL DAY TO SECOND 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL DAY TO SECOND) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_ID2S(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_D2S,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL HOUR TO SECOND字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL HOUR TO SECOND) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO(CurNo,STMT_STATE_FETCHED);
- Var:= BLDIN_COLUMN_VALUE_IH2S(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_H2S,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL MINUTE TO SECOND字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL MINUTE TO SECOND) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- Var:= BLDIN_COLUMN_VALUE_IM2S(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_M2S,-1);
- RETURN 1;
- END;
-
- /***********取 INTERVAL SECOND字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT INTERVAL SECOND) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- Var:= BLDIN_COLUMN_VALUE_IS(cursors(CurNo).ObjPtr,ColNo,TYPE_INTERVAL_S,-1);
- RETURN 1;
- END;
-
- /***********取 GUID字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT GUID) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- Var:= BLDIN_COLUMN_VALUE_GUID(cursors(CurNo).ObjPtr,ColNo,TYPE_GUID,-1);
- RETURN 1;
- END;
-
- /***********取 BINARY 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT BINARY) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- Var:= BLDIN_COLUMN_VALUE_BINARY(cursors(CurNo).ObjPtr,ColNo,TYPE_BINARY,-1);
- RETURN 1;
- END;
-
- /***********取 ROWID 字段值***************/
- FUNCTION COLUMN_VALUE(CurNo INTEGER,ColNo INTEGER,Var OUT ROWID) RETURN INTEGER
- IS
- BEGIN
- --检查序号
- CHECK_CURNO_RANGE_AND_EXIST(CurNo);
- Var:= BLDIN_COLUMN_VALUE_ROWID(cursors(CurNo).ObjPtr,ColNo,TYPE_ROWID,-1);
- RETURN 1;
- END;
-
- BEGIN
- Cursors.extend(100);
- END SYSDBA.DBMS_SQL;
- /
- /*************创建CTX_DOC包******************************/
- CREATE OR REPLACE PACKAGE "SYSDBA"."CTX_DOC"
- AUTHID CURRENT_USER
- COMMENT '全文检索支持包'
- IS
- SUBTYPE TOKEN_REC IS RECORD(TOKEN VARCHAR(64),OFFSET INTEGER,LENGTH INTEGER);
- SUBTYPE TOKEN_REC2 IS RECORD(TOKEN VARCHAR(64),REPET_N INTEGER,LENGTH INTEGER);
- SUBTYPE TOKEN_TAB IS TABLE OF TOKEN_REC;
- SUBTYPE TOKEN_TAB2 IS TABLE OF TOKEN_REC2;
-
- SP_MAX_LEN CONSTANT INTEGER := 0; --按最长词划分
- SP_MIN_LEN CONSTANT INTEGER := 1; --按最短词划分
- SP_SUB_WORD1 CONSTANT INTEGER := 2; --结果包括大词的所有子词
- SP_SUB_WORD2 CONSTANT INTEGER := 4; --结果包括大词有非头部子词
- SP_ASCII CONSTANT INTEGER := 8; --结果包括ascii串
- SP_DIGIT CONSTANT INTEGER := 16; --结果包括数字串
-
- SPILIT_POLICY INTEGER:= 0; --MAX_LEN
- VOCA_NAME VARCHAR(20):='STD_VOC';
- KEY_TYPE VARCHAR(10):='PRIMARY';
-
- PROCEDURE SET_KEY_TYPE(key_type IN VARCHAR2); --设置键类型
- PROCEDURE SET_SPLIT_POLICY(_policy IN INTEGER);--设置分词策略
- PROCEDURE TOKENS(index_name IN VARCHAR2,
- textkey IN VARCHAR2,
- restab IN OUT TOKEN_TAB);
- PROCEDURE TOKENS(index_name IN VARCHAR2,
- textkey IN VARCHAR2,
- restab IN VARCHAR2,
- query_id IN NUMBER DEFAULT 0);
- PROCEDURE TOKENS(content IN VARCHAR2,
- restab IN OUT TOKEN_TAB);
- PROCEDURE TOKENS(content IN CLOB,
- restab IN OUT TOKEN_TAB);
-
- PROCEDURE TOKENS2(index_name IN VARCHAR2,
- textkey IN VARCHAR2,
- restab IN OUT TOKEN_TAB);
- PROCEDURE TOKENS2(index_name IN VARCHAR2,
- textkey IN VARCHAR2,
- restab IN VARCHAR2,
- query_id IN NUMBER DEFAULT 0);
- PROCEDURE TOKENS2(content IN VARCHAR2,
- restab IN OUT TOKEN_TAB);
- PROCEDURE TOKENS2(content IN CLOB,
- restab IN OUT TOKEN_TAB);
- END "SYSDBA"."CTX_DOC";
- /
- /*************创建CTX_DOC包体******************************/
- CREATE OR REPLACE PACKAGE BODY "SYSDBA"."CTX_DOC"
- IS
-
- PROCEDURE SET_KEY_TYPE(_key_type IN VARCHAR2)
- IS
- BEGIN
- key_type:=_key_type;
- END;
-
-
- PROCEDURE SET_SPLIT_POLICY(_policy IN INTEGER)
- IS
- BEGIN
- SPILIT_POLICY:=_policy;
- END;
-
- PROCEDURE BLDIN_TOKENS(
- voca_name IN VARCHAR2,
- content IN VARCHAR,
- restab IN OUT TOKEN_TAB,
- sp_policy IN INTEGER)
- IS LANGUAGE "C" NAME "BLDIN_TOKENS1";
- PROCEDURE BLDIN_TOKENS2(
- voca_name IN VARCHAR2,
- content IN VARCHAR,
- restab IN OUT TOKEN_TAB,
- sp_policy IN INTEGER)
- IS LANGUAGE "C" NAME "BLDIN_TOKENS2";
-
- PROCEDURE TOKENS(index_name IN VARCHAR2,
- textkey IN VARCHAR2,
- restab IN OUT TOKEN_TAB)
- IS
- BEGIN
- NULL;
- END;
-
- PROCEDURE TOKENS(index_name IN VARCHAR2,
- textkey IN VARCHAR2,
- restab IN VARCHAR2,
- query_id IN NUMBER DEFAULT 0)
- IS
- BEGIN
- NULL;
- END;
-
- PROCEDURE TOKENS(content IN VARCHAR2,
- restab IN OUT TOKEN_TAB)
- IS
- BEGIN
- BLDIN_TOKENS(voca_name,content,restab,SPILIT_POLICY);
- END;
-
- PROCEDURE TOKENS(content IN CLOB,
- restab IN OUT TOKEN_TAB)
- IS
- BEGIN
- BLDIN_TOKENS(voca_name,content,restab,SPILIT_POLICY);
- END;
-
- PROCEDURE TOKENS2(index_name IN VARCHAR2,
- textkey IN VARCHAR2,
- restab IN OUT TOKEN_TAB)
- IS
- BEGIN
- NULL;
- END;
-
- PROCEDURE TOKENS2(index_name IN VARCHAR2,
- textkey IN VARCHAR2,
- restab IN VARCHAR2,
- query_id IN NUMBER DEFAULT 0)
- IS
- BEGIN
- NULL;
- END;
-
- PROCEDURE TOKENS2(content IN VARCHAR2,
- restab IN OUT TOKEN_TAB)
- IS
- BEGIN
- BLDIN_TOKENS2(voca_name,content,restab,SPILIT_POLICY);
- END;
-
- PROCEDURE TOKENS2(content IN CLOB,
- restab IN OUT TOKEN_TAB)
- IS
- BEGIN
- BLDIN_TOKENS2(voca_name,content,restab,SPILIT_POLICY);
- END;
-
- END "SYSDBA"."CTX_DOC";
- /
- /***********创建DBMS_LOB包(用于支持大对象操作)***************/
- ----包头
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_LOB
- IS
- FUNCTION GETLENGTH(lob_loc BLOB) RETURN INTEGER;
- FUNCTION GETLENGTH(lob_loc CLOB) RETURN INTEGER;
- PROCEDURE READ(lob_loc BLOB,AMOUNT INTEGER,OFFSET INTEGER, OUT_BUFF OUT VARCHAR);
- PROCEDURE READ(lob_loc CLOB,AMOUNT INTEGER,OFFSET INTEGER, OUT_BUFF OUT VARCHAR);
- END SYSDBA.DBMS_LOB;
- /
- ----包体
- CREATE PACKAGE BODY SYSDBA.DBMS_LOB
- IS
- FUNCTION GETLENGTH(lob_loc BLOB) RETURN INTEGER
- IS
- LANGUAGE "C"
- NAME "BLDIN_BLOB_GETLENGTH";
-
- FUNCTION GETLENGTH(lob_loc CLOB) RETURN INTEGER
- IS
- LANGUAGE "C"
- NAME "BLDIN_CLOB_GETLENGTH";
-
- PROCEDURE READ(lob_loc BLOB,AMOUNT INTEGER,OFFSET INTEGER, OUT_BUFF OUT VARCHAR)
- IS
- LANGUAGE "C"
- NAME "BLDIN_BLOB_READ";
- PROCEDURE READ(lob_loc CLOB,AMOUNT INTEGER,OFFSET INTEGER, OUT_BUFF OUT VARCHAR)
- IS
- LANGUAGE "C"
- NAME "BLDIN_CLOB_READ";
-
- END SYSDBA.DBMS_LOB;
- /
- -----UTL_RAW包--------------------
- CREATE PACKAGE SYSDBA.UTL_RAW
- IS
- big_endian CONSTANT PLS_INTEGER := 1;
- little_endian CONSTANT PLS_INTEGER := 2;
- machine_endian CONSTANT PLS_INTEGER := 3;
- FUNCTION BIT_AND (r1 IN RAW, r2 IN RAW) RETURN RAW;
- FUNCTION BIT_COMPLEMENT (r1 IN RAW, r2 IN RAW) RETURN RAW;
- FUNCTION BIT_OR (r1 IN RAW, r2 IN RAW) RETURN RAW;
- FUNCTION BIT_XOR (r1 IN RAW, r2 IN RAW) RETURN RAW;
- FUNCTION CAST_FROM_BINARY_DOUBLE (n IN BINARY_DOUBLE, endianess IN BINARY_INTEGER DEFAULT 1) RETURN RAW;
- FUNCTION CAST_FROM_BINARY_FLOAT (n IN BINARY_FLOAT, endianess IN BINARY_INTEGER DEFAULT 1) RETURN RAW;
- FUNCTION CAST_FROM_BINARY_INTEGER (n IN BINARY_INTEGER, endianess IN BINARY_INTEGER DEFAULT 1) RETURN RAW;
- FUNCTION CAST_FROM_NUMBER (n IN NUMBER) RETURN RAW;
- FUNCTION CAST_TO_BINARY_DOUBLE (r IN RAW,endianess IN BINARY_INTEGER DEFAULT 1) RETURN BINARY_DOUBLE;
- FUNCTION CAST_TO_BINARY_FLOAT (r IN RAW, endianess IN BINARY_INTEGER DEFAULT 1) RETURN BINARY_FLOAT;
- FUNCTION CAST_TO_BINARY_INTEGER (r IN RAW, endianess IN BINARY_INTEGER DEFAULT 1) RETURN BINARY_INTEGER;
- FUNCTION CAST_TO_NUMBER (r IN RAW) RETURN NUMBER;
- FUNCTION CAST_TO_NVARCHAR2 (r IN RAW) RETURN NVARCHAR2;
- FUNCTION CAST_TO_RAW (c IN VARCHAR2) RETURN RAW;
- FUNCTION CAST_TO_VARCHAR2 (r IN RAW) RETURN VARCHAR2;
- FUNCTION COMPARE (r1 IN RAW,r2 IN RAW,pad IN RAW DEFAULT NULL) RETURN INTEGER;
- FUNCTION CONCAT (r1 IN RAW DEFAULT NULL,
- r2 IN RAW DEFAULT NULL,
- r3 IN RAW DEFAULT NULL,
- r4 IN RAW DEFAULT NULL,
- r5 IN RAW DEFAULT NULL,
- r6 IN RAW DEFAULT NULL,
- r7 IN RAW DEFAULT NULL,
- r8 IN RAW DEFAULT NULL,
- r9 IN RAW DEFAULT NULL,
- r10 IN RAW DEFAULT NULL,
- r11 IN RAW DEFAULT NULL,
- r12 IN RAW DEFAULT NULL)
- RETURN RAW;
- FUNCTION CONVERT(r IN RAW,to_charset IN VARCHAR2,from_charset IN VARCHAR2) RETURN RAW;
- FUNCTION COPIES (r IN RAW,n IN INTEGER) RETURN RAW;
- FUNCTION LENGTH (r IN RAW) RETURN INTEGER;
- FUNCTION OVERLAY(overlay_str IN RAW,target IN RAW,
- pos IN BINARY_INTEGER DEFAULT 1,
- len IN BINARY_INTEGER DEFAULT NULL,
- pad IN RAW DEFAULT NULL)
- RETURN RAW;
- FUNCTION REVERSE (r IN RAW) RETURN RAW;
- FUNCTION SUBSTR (r IN RAW,pos IN BINARY_INTEGER,len IN BINARY_INTEGER DEFAULT NULL) RETURN RAW;
- FUNCTION TRANSLATE (r IN RAW,from_set IN RAW,to_set IN RAW) RETURN RAW;
- FUNCTION TRANSLITERATE (r IN RAW,to_set IN RAW DEFAULT NULL,from_set IN RAW DEFAULT NULL,pad IN RAW DEFAULT NULL) RETURN RAW;
- FUNCTION XRANGE (start_byte IN RAW DEFAULT NULL,end_byte IN RAW DEFAULT NULL) RETURN RAW;
- END SYSDBA.UTL_RAW;
- /
- CREATE PACKAGE BODY SYSDBA.UTL_RAW
- IS
- FUNCTION BIT_AND (r1 IN RAW, r2 IN RAW) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_BIT_AND";
- FUNCTION BIT_COMPLEMENT (r1 IN RAW, r2 IN RAW) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_COMPLEMENT";
- FUNCTION BIT_OR (r1 IN RAW, r2 IN RAW) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_BIT_OR";
- FUNCTION BIT_XOR (r1 IN RAW, r2 IN RAW) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_BIT_XOR";
- FUNCTION CAST_FROM_BINARY_DOUBLE (n IN BINARY_DOUBLE, endianess IN BINARY_INTEGER DEFAULT 1) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_DOUBLE2RAW";
- FUNCTION CAST_FROM_BINARY_FLOAT (n IN BINARY_FLOAT, endianess IN BINARY_INTEGER DEFAULT 1) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_FLOAT2RAW";
- FUNCTION CAST_FROM_BINARY_INTEGER (n IN BINARY_INTEGER, endianess IN BINARY_INTEGER DEFAULT 1) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_INTEGER2RAW";
- FUNCTION CAST_FROM_NUMBER (n IN NUMBER) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_NUMERIC2RAW";
- FUNCTION CAST_TO_BINARY_DOUBLE (r IN RAW,endianess IN BINARY_INTEGER DEFAULT 1) RETURN BINARY_DOUBLE
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW2DOUBLE";
- FUNCTION CAST_TO_BINARY_FLOAT (r IN RAW, endianess IN BINARY_INTEGER DEFAULT 1) RETURN BINARY_FLOAT
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW2FLOAT";
- FUNCTION CAST_TO_BINARY_INTEGER (r IN RAW, endianess IN BINARY_INTEGER DEFAULT 1) RETURN BINARY_INTEGER
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW2INTEGER";
- FUNCTION CAST_TO_NUMBER (r IN RAW) RETURN NUMBER
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW2NUMERIC";
- FUNCTION CAST_TO_NVARCHAR2 (r IN RAW) RETURN NVARCHAR2
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW2NVARCHAR2";
- FUNCTION CAST_TO_RAW (c IN VARCHAR2) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_VARCHAR22RAW";
- FUNCTION CAST_TO_VARCHAR2 (r IN RAW) RETURN VARCHAR2
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW2VARCHAE2";
- FUNCTION COMPARE (r1 IN RAW,r2 IN RAW,pad IN RAW DEFAULT NULL) RETURN INTEGER
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_COMPARE";
- FUNCTION CONCAT (r1 IN RAW DEFAULT NULL,
- r2 IN RAW DEFAULT NULL,
- r3 IN RAW DEFAULT NULL,
- r4 IN RAW DEFAULT NULL,
- r5 IN RAW DEFAULT NULL,
- r6 IN RAW DEFAULT NULL,
- r7 IN RAW DEFAULT NULL,
- r8 IN RAW DEFAULT NULL,
- r9 IN RAW DEFAULT NULL,
- r10 IN RAW DEFAULT NULL,
- r11 IN RAW DEFAULT NULL,
- r12 IN RAW DEFAULT NULL)
- RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_CONCAT";
- FUNCTION CONVERT(r IN RAW,to_charset IN VARCHAR2,from_charset IN VARCHAR2) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_CONVERT";
- FUNCTION COPIES (r IN RAW,n IN INTEGER) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_COPYS";
- FUNCTION LENGTH (r IN RAW) RETURN INTEGER
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_LENGTH";
- FUNCTION OVERLAY(overlay_str IN RAW,target IN RAW,
- pos IN BINARY_INTEGER DEFAULT 1,
- len IN BINARY_INTEGER DEFAULT NULL,
- pad IN RAW DEFAULT NULL)
- RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_OVERLAY";
- FUNCTION REVERSE (r IN RAW) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_REVERSE";
- FUNCTION SUBSTR (r IN RAW,pos IN BINARY_INTEGER,len IN BINARY_INTEGER DEFAULT NULL) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_SUBSTR";
- FUNCTION TRANSLATE (r IN RAW,from_set IN RAW,to_set IN RAW) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_TRANSLATE";
- FUNCTION TRANSLITERATE (r IN RAW,to_set IN RAW DEFAULT NULL,from_set IN RAW DEFAULT NULL,pad IN RAW DEFAULT NULL) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_TRANSLITERATE";
- FUNCTION XRANGE (start_byte IN RAW DEFAULT NULL,end_byte IN RAW DEFAULT NULL) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_RAW_XRANGE";
- END SYSDBA.UTL_RAW;
- /
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_REPLICATION
- IS
- PROCEDURE CREATE_MODIFY_SOURCE(SCHEMA_NAME VARCHAR,TABLE_NAME VARCHAR);
- PROCEDURE DROP_MODIFY_SOURCE(SCHEMA_NAME VARCHAR,TABLE_NAME VARCHAR);
-
- PROCEDURE CREATE_SUBSCRIBER(SUBSCRIBER_NAME VARCHAR,USEER_NAME VARCHAR);
- PROCEDURE DROP_SUBSCRIBER(SUBSCRIBER_NAME VARCHAR,USEER_NAME VARCHAR);
- PROCEDURE SWITCH_FILE();
- PROCEDURE POLL_MODIFY_DATA(SUBSCRIBER_NAME VARCHAR,PARTI_NO INTEGER,FILTER VARCHAR,POLL_LEN BIGINT,KEEP_POS BOOLEAN,FNO INTEGER DEFAULT -1,FPOS BIGINT DEFAULT 0,RET_TYPE INTEGER DEFAULT 0);
- PROCEDURE DUMP_TABLE( TABLE_NAME VARCHAR, --表名
- FILTER VARCHAR, --where 条件(不写where关键字)
- PATH VARCHAR, --导出数据 INSERT SQL 的数据库端输出文件(NULL时不输出到文件)
- IS_SEND BOOLEAN DEFAULT false, -- 是否将数据 INSERT SQL的结果集 返回客户端
- IS_DUMP_META BOOLEAN DEFAULT false);-- 是否在数据前输出表定义DDL
- END SYSDBA.DBMS_REPLICATION;
- /
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_REPLICATION
- IS
-
- PROCEDURE CREATE_MODIFY_SOURCE(SCHEMA_NAME VARCHAR,TABLE_NAME VARCHAR)
- IS
- LANGUAGE "C"
- NAME "BLDIN_CREATE_MODIFY_SOURCE";
- PROCEDURE DROP_MODIFY_SOURCE(SCHEMA_NAME VARCHAR,TABLE_NAME VARCHAR)
- IS
- LANGUAGE "C"
- NAME "BLDIN_DROP_MODIFY_SOURCE";
-
- PROCEDURE CREATE_SUBSCRIBER(SUBSCRIBER_NAME VARCHAR,USEER_NAME VARCHAR)
- IS
- LANGUAGE "C"
- NAME "BLDIN_CREATE_SUBSCRIBER";
- PROCEDURE DROP_SUBSCRIBER(SUBSCRIBER_NAME VARCHAR,USEER_NAME VARCHAR)
- IS
- LANGUAGE "C"
- NAME "BLDIN_DROP_SUBSCRIBER";
-
- PROCEDURE SWITCH_FILE()
- IS
- LANGUAGE "C"
- NAME "BLDIN_SWITCH_FILE";
- PROCEDURE POLL_MODIFY_DATA(SUBSCRIBER_NAME VARCHAR,PARTI_NO INTEGER,FILTER VARCHAR,POLL_LEN BIGINT,KEEP_POS BOOLEAN,FNO INTEGER DEFAULT -1,FPOS BIGINT DEFAULT 0,RET_TYPE INTEGER DEFAULT 0)
- IS
- LANGUAGE "C"
- NAME "BLDIN_POLL_MODIFY_DATA";
-
- PROCEDURE DUMP_TABLE(TABLE_NAME VARCHAR,FILTER VARCHAR,PATH VARCHAR,IS_SEND BOOLEAN DEFAULT false,IS_DUMP_META BOOLEAN DEFAULT false)
- IS
- LANGUAGE "C"
- NAME "BLDIN_DUMP_TABLE";
-
- END SYSDBA.DBMS_REPLICATION;
- /
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_CRYPTO IS
- -- hash算法
- HASH_MD4 INTEGER := 1;
- HASH_MD5 INTEGER := 2;
- HASH_SH1 INTEGER := 3;
- -- 消息认证码hash方式
- HMAC_MD5 INTEGER := 1;
- HMAC_SH1 INTEGER := 2;
- -- 块加密算法
- ENCRYPT_DES INTEGER := 1; -- 0x0001
- ENCRYPT_3DES_2KEY INTEGER := 2; -- 0x0002
- ENCRYPT_3DES INTEGER := 3; -- 0x0003
- ENCRYPT_AES INTEGER := 4; -- 0x0004
- ENCRYPT_PBE_MD5DES INTEGER := 5; -- 0x0005
- ENCRYPT_AES128 INTEGER := 6; -- 0x0006
- ENCRYPT_AES192 INTEGER := 7; -- 0x0007
- ENCRYPT_AES256 INTEGER := 8; -- 0x0008
- -- 块加密模式
- CHAIN_CBC INTEGER := 256; -- 0x0100
- CHAIN_CFB INTEGER := 512; -- 0x0200
- CHAIN_ECB INTEGER := 768; -- 0x0300
- CHAIN_OFB INTEGER := 1024; -- 0x0400
- -- 块加密填充方式
- PAD_PKCS5 INTEGER := 4096; -- 0x1000
- PAD_NONE INTEGER := 8192; -- 0x2000
- PAD_ZERO INTEGER := 12288; -- 0x3000
- PAD_SELF INTEGER := 16384; -- 0x4000
- -- 流加密算法
- ENCRYPT_RC4 INTEGER := 129; -- 0x0081
-
- -- 常用加密套件
- DES_CBC_PKCS5 INTEGER := ENCRYPT_DES+ CHAIN_CBC+ PAD_PKCS5;
- DES3_CBC_PKCS5 INTEGER := ENCRYPT_3DES+ CHAIN_CBC+ PAD_PKCS5;
- AES_CBC_PKCS5 INTEGER := ENCRYPT_AES+ CHAIN_CBC+ PAD_PKCS5;
- --加密接口
- FUNCTION Encrypt (src IN RAW,typ IN INTEGER, key IN RAW,iv IN RAW DEFAULT NULL) RETURN RAW;
- FUNCTION Encrypt (src IN VARCHAR,typ IN INTEGER, key IN VARCHAR,iv IN VARCHAR DEFAULT NULL) RETURN RAW;
-
- PROCEDURE Encrypt (dst IN OUT BLOB,src IN BLOB,typ IN INTEGER,key IN RAW,iv IN RAW DEFAULT NULL);
- PROCEDURE Encrypt (dst IN OUT BLOB,src IN CLOB ,typ IN INTEGER,key IN RAW,iv IN RAW DEFAULT NULL);
- --解密接口
- FUNCTION Decrypt (src IN RAW,typ IN INTEGER,key IN RAW,iv IN RAW DEFAULT NULL)RETURN RAW;
- FUNCTION Decrypt (src IN RAW,typ IN INTEGER,key IN VARCHAR,iv IN VARCHAR DEFAULT NULL)RETURN VARCHAR;
-
- PROCEDURE Decrypt (dst IN OUT BLOB,src IN BLOB,typ IN INTEGER,key IN RAW,iv IN RAW DEFAULT NULL);
- PROCEDURE Decrypt (dst IN OUT CLOB,src IN BLOB,typ IN INTEGER,key IN RAW,iv IN RAW DEFAULT NULL);
- --hash 接口
- FUNCTION Hash (src IN RAW,typ IN INTEGER)RETURN RAW ;
- FUNCTION Hash (src IN BLOB,typ IN INTEGER)RETURN RAW ;
- FUNCTION Hash (src IN CLOB,typ IN INTEGER)RETURN RAW ;
- --消息认证码
- FUNCTION Mac (src IN RAW,typ IN INTEGER,key IN RAW)RETURN RAW;
- FUNCTION Mac (src IN BLOB,typ IN INTEGER,key IN RAW)RETURN RAW;
- FUNCTION Mac (src IN CLOB,typ IN INTEGER,key IN RAW)RETURN RAW;
- --随机函数
- FUNCTION RandomBytes (number_bytes IN INTEGER) RETURN RAW;
- FUNCTION RandomNumber RETURN NUMBER;
- FUNCTION RandomInteger RETURN INTEGER;
- END SYSDBA.DBMS_CRYPTO;
- /
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_CRYPTO IS
- FUNCTION Encrypt (src IN VARCHAR,typ IN INTEGER, key IN VARCHAR,iv IN VARCHAR DEFAULT NULL) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_ENCRYPT1";
-
- FUNCTION Decrypt (src IN RAW,typ IN INTEGER,key IN VARCHAR,iv IN VARCHAR DEFAULT NULL) RETURN VARCHAR
- IS
- LANGUAGE "C"
- NAME "BLDIN_DECRYPT1";
- FUNCTION Encrypt (src IN RAW,typ IN INTEGER, key IN RAW,iv IN RAW DEFAULT NULL) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_ENCRYPT1";
-
- FUNCTION Decrypt (src IN RAW,typ IN INTEGER,key IN RAW,iv IN RAW DEFAULT NULL) RETURN RAW
- IS
- LANGUAGE "C"
- NAME "BLDIN_DECRYPT1";
- END SYSDBA.DBMS_CRYPTO;
- /
- CREATE OR REPLACE PACKAGE "SYSDBA"."DBMS_BACKUP"
- COMMENT '备份应用程序包'
- IS
- /**
- 参数:
- planname 备份计划名称
- plantype 备份类型 系统备份(BAK)or 逻辑备份(EXP)
- path 备份文件输出路径,暂时只支持服务器端配置路径,后续考虑支持备到客户端
- starttime 计划开始时间
- period 计划执行周期,分钟为单位
- **/
- PROCEDURE Create_Plan(planname VARCHAR, plantype VARCHAR, path VARCHAR, starttime DATETIME, period INTERVAL DAY TO MINUTE);
-
- /**
- 参数:
- planname 备份计划名称
- ena true活动态,false禁用态(系统有且仅有一个计划为活动态)
- **/
- PROCEDURE Enable_Plan(planname VARCHAR, ena BOOLEAN);
-
- /**
- 参数:
- planname 备份计划名称,不可删除活动态计划,删除时同时删除计划下所有项目
- **/
- PROCEDURE Drop_Plan(planname VARCHAR);
-
- /**
- 系统备份(BAK)项创建接口,包含增量和全备方式
- 参数:
- planname 备份计划名称
- filename 备份数据文件名
- time_offset 相对于计划开始时间的时间偏移(分钟为单位),不能超过计划周期
- iperiod 计划执行周期,分钟为单位,全备时此参数为NULL
- **/
- PROCEDURE Add_Backup_Item(planname VARCHAR,filename VARCHAR, time_offset INTERVAL DAY TO MINUTE);
- PROCEDURE Add_Backup_Inc_Item(planname VARCHAR,time_offset INTERVAL DAY TO MINUTE,iperiod INTERVAL DAY TO MINUTE DEFAULT NULL);
-
- /**
- 逻辑备份(EXP)项创建接口,包含库级和表级
- 参数:
- planname 备份计划名称
- obj_name 库名或表名
- obj_type 备份对象类型 取值(DATABASE,TABLE)
- filename 备份数据文件名(必须包含路径信息)
- time_offset 相对于计划开始时间的时间偏移(分钟为单位),不能超过计划周期
- **/
- PROCEDURE Add_Export_Item(planname VARCHAR,obj_name VARCHAR, obj_type VARCHAR, filename VARCHAR,time_offset INTERVAL DAY TO MINUTE);
-
- /**
- 文件项操作添加接口
- 参数:
- planname 备份计划名称
- filename 备份数据文件名(必须包含路径信息)
- bak_count 备份文件保留份数
- optype 备份文件处理方式DELETE或MOVE
- dstpath MOVE 类型是的目标路径
- **/
- PROCEDURE Add_File_Item(planname VARCHAR,filename VARCHAR, bak_count INTEGER,optype VARCHAR,dstpath VARCHAR DEFAULT NULL);
-
- /**
- 删除系统备份计划子项
- 参数:
- planname 备份计划名称
- item_n 子项编号(创建时自动生成)
- **/
- PROCEDURE Drop_Item(planname VARCHAR, item_n INTEGER);
-
- /**
- 删除逻辑备份子项和文件操作子项
- 参数:
- planname 备份计划名称
- objtype 对象类型 取值('DATABASE','TABLE','FILE')
- **/
- PROCEDURE Alter_Plan_Del_Item(planname VARCHAR,objtype VARCHAR,objname VARCHAR);
- /**
- 设置计划当前项目
- 参数:
- planname 备份计划名称
- curr_item 当前项目编号
- **/
- PROCEDURE alter_modify_curr_item(planname VARCHAR,curr_item INTEGER);
- /**
- 设置下次运行时间
- 参数:
- planname 备份计划名称
- curr_item 当前项目编号
- next_run_time 下次运行时间
- istart_t 增量开始时间
- **/
- PROCEDURE alter_modify_run_time(planname VARCHAR,curr_item INTEGER,next_run_time DATETIME,istart_t DATETIME DEFAULT NULL);
-
- /**
- 备份计划执行函数
- **/
- PROCEDURE Run();
-
- /**
- 日志文件删除接口,暂未使用
- **/
- PROCEDURE Del_xfn();
- PROCEDURE FILE_OPTION(PATH VARCHAR,OBJ_NAME VARCHAR,BAK_COUNT INT,OP_TYPE VARCHAR,PLAN_NAME VARCHAR,ITEM_NO INT);
-
- END "SYSDBA"."DBMS_BACKUP";
- /
- CREATE OR Replace Package Body "DBMS_BACKUP" IS
- /************创建备份计划**********/
- PROCEDURE Create_Plan(planname VARCHAR,
- plantype VARCHAR,
- path VARCHAR,
- starttime DATETIME,
- period INTERVAL DAY TO MINUTE) IS
- LANGUAGE "C" NAME "BLDIN_BAK_CREATE_PLAN";
- /*************设置备份计划的活动标志************/
- PROCEDURE Enable_Plan(planname VARCHAR, b boolean) IS
- LANGUAGE "C" NAME "BLDIN_BAK_MODIFY_PLAN_STATE";
- /************删除备份计划*******************/
- PROCEDURE Drop_Plan(planname VARCHAR) IS
- LANGUAGE "C" NAME "BLDIN_BAK_DROP_PLAN";
- /************增加全备份项目*************/
- PROCEDURE Add_Backup_Item(planname VARCHAR,
- filename VARCHAR,
- time_offset INTERVAL DAY TO MINUTE) IS
- LANGUAGE "C" NAME "BLDIN_BAK_ADD_BAK_ITEM";
- /************增加增量备份项目*************/
- PROCEDURE Add_Backup_Inc_Item(planname VARCHAR,
- time_offset INTERVAL DAY TO MINUTE,
- iperiod INTERVAL DAY TO MINUTE DEFAULT NULL) IS
- LANGUAGE "C" NAME "BLDIN_BAK_ADD_INC_ITEM";
- /************增加导出项目*************/
- PROCEDURE Add_Export_Item(planname VARCHAR,
- obj_name VARCHAR,
- obj_type VARCHAR,
- filename VARCHAR,
- time_offset INTERVAL DAY TO MINUTE) IS
- LANGUAGE "C" NAME "BLDIN_BAK_ADD_EXP_ITEM";
- /************增加文件操作项目***************/
- PROCEDURE Add_File_Item(planname VARCHAR,
- filename VARCHAR,
- bak_count INTEGER,
- optype VARCHAR,
- dstpath VARCHAR DEFAULT NULL) IS
- LANGUAGE "C" NAME "BLDIN_BAK_ADD_FILE_ITEM";
- /************删除项目****************/
- PROCEDURE Drop_Item(planname VARCHAR, item_n INTEGER) IS
- LANGUAGE "C" NAME "BLDIN_BAK_DROP_ITEM_BY_NO";
- /****************************按名删除table,database,file子项函数************************************/
- PROCEDURE Alter_Plan_Del_Item(planname VARCHAR,
- objtype VARCHAR,
- objname VARCHAR) IS
- LANGUAGE "C" NAME "BLDIN_BAK_DROP_ITEM_BY_OBJNAME";
- /****************************设置计划当前项目************************************/
- PROCEDURE alter_modify_curr_item(planname VARCHAR, curr_item INTEGER) IS
- LANGUAGE "C" NAME "BLDIN_BAK_MODIFY_PLAN_CURR_ITEM";
- /****************************设置下次运行时间************************************/
- PROCEDURE alter_modify_run_time(planname VARCHAR,
- curr_item INTEGER,
- next_run_time DATETIME,
- istart_t DATETIME DEFAULT NULL) IS
- LANGUAGE "C" NAME "BLDIN_BAK_MODIFY_ITEM_RUN_TIME";
- /*************生成文件的时间后缀****************/
- FUNCTION append_file_tail(srcpathname varchar) RETURN VARCHAR IS
- pos INTEGER;
- tail VARCHAR;
- str_year VARCHAR;
- str_month VARCHAR;
- str_day VARCHAR;
- str_hour VARCHAR;
- str_minute VARCHAR;
- str_second VARCHAR;
- str_ext VARCHAR;
- dstpathname VARCHAR;
- BEGIN
- if not FILE_EXISTS(srcpathname) then
- RETURN NULL;
- end if;
-
- tail := to_char(sysdate);
-
- str_year := substr(tail, 1, 4);
- str_month := substr(tail, 6, 2);
- str_day := substr(tail, 9, 2);
- str_hour := substr(tail, 12, 2);
- str_minute := substr(tail, 15, 2);
- str_second := substr(tail, 18, 2);
-
- tail := str_year || str_month || str_day || str_hour || str_minute ||
- str_second;
-
- pos := POSITION('.' IN REVERSE_STR(srcpathname));
- if pos > 0 then
- str_ext := tailing(srcpathname, pos - 1);
- dstpathname := heading(srcpathname, len(srcpathname) - pos);
- else
- dstpathname := srcpathname;
- end if;
-
- dstpathname := dstpathname || '_' || tail || '.' || str_ext;
-
- --send_msg(dstpathname);
-
- RETURN dstpathname;
-
- END;
- /**********************取得文件末尾的创建时间********************/
- FUNCTION get_file_create_time(filename VARCHAR, compfilename VARCHAR)
- RETURN DATETIME IS
- dt DATETIME;
- dt_str VARCHAR;
- str_year VARCHAR;
- str_month VARCHAR;
- str_day VARCHAR;
- str_hour VARCHAR;
- str_minute VARCHAR;
- str_second VARCHAR;
- pos INTEGER;
- BEGIN
-
- --在文件名中,取得时间串
- dt_str := substr(filename, len(compfilename) + 2, 14);
- if len(dt_str) != 14 then
- dt_str := '99991231235959';
- end if;
-
- str_year := substr(dt_str, 1, 4);
- str_month := substr(dt_str, 5, 2);
- str_day := substr(dt_str, 7, 2);
- str_hour := substr(dt_str, 9, 2);
- str_minute := substr(dt_str, 11, 2);
- str_second := substr(dt_str, 13, 2);
-
- dt_str := str_year || '-' || str_month || '-' || str_day || ' ' ||
- str_hour || ':' || str_minute || ':' || str_second;
- dt := To_date(dt_str, 'yyyy-mm-dd hh24:mi:ss');
- RETURN dt;
- END;
- /************取得指定路径下,匹配指定部分开始字符的最早的一个文件*********/
- FUNCTION get_first_file(path VARCHAR,filename VARCHAR,bak_count out integer) RETURN VARCHAR IS
- str_name varchar;
- str_ext varchar;
- str_filename varchar;
- str_fileext varchar;
- pos integer;
- create_dt datetime;
- ret_filename varchar;
- dt_str varchar;
- BEGIN
- bak_count := 0;
- ret_filename := NULL;
-
- --检测路径存在
- if not dir_exists(path) then
- RAISE_APPLICATION_ERROR(-30012, '目标路径' || path || '不存在.');
- end if;
-
- --分离指定文件名的名字和后缀
- pos := POSITION('.' IN REVERSE_STR(filename));
- if pos > 0 then
- str_ext := tailing(filename, pos - 1);
- str_name := heading(filename, len(filename) - pos);
- end if;
-
- create_dt := To_date('9999-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss');
-
- FOR r IN (select * from TABLE(DBMS_INFO.FILE_LIST(path))) LOOP
- if not r.is_dir then
- pos := position('/' IN REVERSE_STR(r.db_path));
- if pos > 0 then
- str_filename := tailing(r.db_path, pos - 1);
- else
- str_filename := r.db_path;
- end if;
-
- pos := POSITION('.' IN REVERSE_STR(str_filename));
- if pos > 0 then
- str_fileext := tailing(str_filename, pos - 1);
- str_filename := heading(str_filename, len(str_filename) - pos);
- end if;
-
- pos := position(str_name in str_filename);
- if pos = 1 and '_' = substr(str_filename, len(str_name) + 1, 1) and
- str_ext = str_fileext then
- bak_count := bak_count + 1;
- if create_dt > get_file_create_time(str_filename, str_name) then
- create_dt := get_file_create_time(str_filename, str_name);
- ret_filename := r.db_path;
- end if;
- end if;
- end if;
- END FOR;
-
- RETURN ret_filename;
- END;
- /*****************************处理重命名操作********************************/
- PROCEDURE rename_op(path VARCHAR, fname VARCHAR) IS
- pos INTEGER;
- srcfilename VARCHAR;
- dstfilename VARCHAR;
- BEGIN
- --参数检测
-
- IF path ISNULL THEN
- RAISE_APPLICATION_ERROR(-30020, '参数path不能为空');
- END IF;
-
- IF fname ISNULL THEN
- RAISE_APPLICATION_ERROR(-30020, '参数fname不能为空');
- END IF;
-
- --处理路径
- pos := position('/' in reverse_str(path));
-
- IF pos = 1 THEN
- srcfilename := path;
- ELSE
- srcfilename := CONCAT(path, '/');
- END IF;
- srcfilename := CONCAT(srcfilename, fname);
- dstfilename := append_file_tail(srcfilename);
- IF dstfilename is not null then
- if not RENAME_FILE(srcfilename, dstfilename) then
- RAISE_APPLICATION_ERROR(-30015,'重命名文件' || srcfilename || '失败.');
- end if;
- end if;
- END;
- PROCEDURE Del_xfn() as
- path_str varchar;
- xfn_str varchar;
- min_xfn integer;
- path_len integer;
- xfn integer;
- BEGIN
- select MIN_RESTORE_XFN into min_xfn from sys_ctl_vars;
- for r in (select db_path
- from TABLE(DBMS_INFO.FILE_LIST('/ARCH'))
- ORDER BY DB_PATH) loop
- path_str := r.db_path;
- --取得归档号
- path_len := len(path_str);
- path_str := heading(path_str, path_len - 4);
- xfn_str := tailing(path_str, path_len - 4 - len('/HOME/ARCH/REDO'));
- xfn := atol(xfn_str);
- --如果归档号小于最小安全号,则删除归档文件
- if xfn < min_xfn then
- DROP_FILE(r.db_path);
- end if;
- end for;
- END;
- PROCEDURE FILE_OPTION (PATH VARCHAR,OBJ_NAME VARCHAR,SAVE_BAK INT,OP_TYPE VARCHAR,PLAN_NAME VARCHAR,ITEM_NO INT,PATH_BAK VARCHAR)
- AS
- srcfilename VARCHAR;
- bak_count int;
- pos INTEGER;
- tmp_item_no INTEGER;
- s_t DATETIME;
- bakpathname VARCHAR;
- dstfilename VARCHAR;
- BEGIN
- --处理删除文件操作
- IF UPPER(OP_TYPE) = 'DELETE' THEN
- --先重命名
- rename_op(PATH, OBJ_NAME);
- --删除操作
- srcfilename := get_first_file(PATH, OBJ_NAME, bak_count);
- if srcfilename notnull and bak_count > SAVE_BAK then
- if not DROP_FILE(srcfilename) then
- RAISE_APPLICATION_ERROR(-30016,'删除文件' || srcfilename || '失败.');
- end if;
- end if;
- --处理移动文件操作
- ELSIF
- UPPER(OP_TYPE) = 'MOVE' THEN
- --先重命名
- rename_op(PATH, OBJ_NAME);
- --移动操作
- srcfilename := get_first_file(PATH, OBJ_NAME, bak_count);
- if srcfilename notnull and bak_count > SAVE_BAK then
- pos := POSITION('/' IN REVERSE_STR(srcfilename));
- if pos > 0 then
- dstfilename := tailing(srcfilename, pos - 1);
- end if;
-
- if '/' = TAILING(PATH_BAK, 1) then
- dstfilename := CONCAT(PATH_BAK, dstfilename);
- else
- dstfilename := CONCAT('/', dstfilename);
- dstfilename := CONCAT(PATH_BAK, dstfilename);
- end if;
-
- if not RENAME_FILE(srcfilename, dstfilename) then
- RAISE_APPLICATION_ERROR(-30017,'移动文件' || srcfilename || '失败.');
- end if;
- end if;
- END IF;
- END;--end file_op
- /************备份计划的执行体(由JOB管理器调用)****************/
- PROCEDURE Run() IS
- mark_str VARCHAR;
- sql_str VARCHAR;
- tv INTERVAL DAY TO MINUTE;
- nt DATETIME;
- tmp_item_no INTEGER;
- s_t DATETIME;
- bakpathname VARCHAR;
- option_type varchar;
- BEGIN
- --提取活动计划中到执行时间的子项
- FOR r IN (SELECT * FROM DBA_BACKUP_ITEMS R1 ,DBA_BACKUP_PLANS R2
- WHERE r2.ENABLE=true AND NEXT_RUN_T < SYSDATE AND R1.PLAN_NAME=R2.PLAN_NAME
- ORDER BY R1.PLAN_NAME, ITEM_NO) LOOP
-
- IF r.op_type='BACKUP' THEN
- option_type:='BACKUP SYSTEM';
- ELSIF r.op_type='BACKUP_INC' THEN
- option_type:='BACKUP SYSTEM INCREMENT';
- ELSIF r.op_type='EXPORT' AND r.OBJ_TYPE = 'DATABASE' THEN
- option_type:='EXPORT DATABASE';
- ELSIF r.op_type='EXPORT' AND r.OBJ_TYPE = 'TABLE' THEN
- option_type:='EXPORT TABLE';
- END IF;
-
- ----每次备份前进行文件重名处理,并根据文件处理项进行处理,增量除外
- IF R.OP_TYPE = 'BACKUP' or R.OP_TYPE='EXPORT' THEN
- FILE_OPTION(r.PATH,r.FILE_NAME,r.FILE_KEEP_CNT,r.file_op,r.plan_name,r.item_no,r.FILE_MOVE_PATH);
- nt := r.NEXT_RUN_T;
- while nt <= SYSDATE LOOP
- nt := nt + r.PERIOD;
- END LOOP;
-
- --修改下次执行时间(无论成功失败,均修改执行时间)
- dbms_backup.alter_modify_curr_item(r.PLAN_NAME, r.ITEM_NO);
- dbms_backup.alter_modify_run_time(r.PLAN_NAME, r.ITEM_NO, nt);
- ELSE
- nt := r.NEXT_RUN_T;
- s_t := r.ISTART_T;
- WHILE nt <= SYSDATE LOOP
- nt := nt + r.IPERIOD;
- IF nt > s_t + r.PERIOD THEN
- s_t := s_t + r.PERIOD;
- nt := s_t + r.TIME_OFF;
- END IF;
- END LOOP;
- dbms_backup.alter_modify_curr_item(r.PLAN_NAME, r.ITEM_NO);
- dbms_backup.alter_modify_run_time(r.PLAN_NAME, r.ITEM_NO, nt, s_t);
- END IF;
- bakpathname := r.PATH;
- IF '/' != TAILING(bakpathname, 1) THEN
- bakpathname := CONCAT(bakpathname, '/');
- END IF;
- bakpathname := CONCAT(bakpathname, r.FILE_NAME);
-
- IF r.OP_TYPE = 'BACKUP' THEN
- sql_str := 'BACKUP SYSTEM TO ''' || bakpathname || ''' online;';
- ELSIF r.OP_TYPE = 'BACKUP_INC' THEN
- sql_str := 'BACKUP SYSTEM INCREMENT APPEND TO ''' || bakpathname || ''' online;';
- ELSIF r.OP_TYPE = 'EXPORT' AND r.OBJ_TYPE = 'DATABASE' THEN
- sql_str := 'BACKUP DATABASE TO ''' || bakpathname || ''';';
- ELSIF r.OP_TYPE = 'EXPORT' AND r.OBJ_TYPE = 'TABLE' THEN
- sql_str := 'BACKUP TABLE ' || r.OBJ_NAME || ' APPEND TO ''' || bakpathname || ''';';
- ELSE
- CONTINUE;
- END IF;
-
- BEGIN
- EXECUTE IMMEDIATE sql_str;
- END;--end execute
- END FOR;
- END; --end Run
- END DBMS_BACKUP;
- /
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_METADATA
- IS
- FUNCTION GET_DDL(obj_name IN VARCHAR) RETURN CLOB;
- FUNCTION GET_DDL(obj_type IN VARCHAR,obj_name IN VARCHAR,schema_name IN VARCHAR DEFAULT NULL) RETURN CLOB;
- FUNCTION GET_DDL_INDEX(tab_name IN VARCHAR, idx_name IN VARCHAR DEFAULT 'ALL') RETURN CLOB;
- END SYSDBA.DBMS_METADATA;
- /
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_METADATA
- IS
- FUNCTION GET_DDL(obj_name IN VARCHAR) RETURN CLOB
- IS
- LANGUAGE "C"
- NAME "BLDIN_GET_DDL";
-
- FUNCTION GET_DDL(obj_type IN VARCHAR,obj_name IN VARCHAR,schema_name IN VARCHAR DEFAULT NULL) RETURN CLOB
- IS
- LANGUAGE "C"
- NAME "BLDIN_GET_DDL_P3";
- FUNCTION GET_DDL_INDEX(tab_name IN VARCHAR, idx_name IN VARCHAR DEFAULT 'ALL') RETURN CLOB
- IS
- LANGUAGE "C"
- NAME "BLDIN_GET_DDL_INDEX";
- END SYSDBA.DBMS_METADATA;
- /
- ----------数据库通用工具包(定义)------------------
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_UTILITY
- IS
- FUNCTION GET_TIME() RETURN BIGINT;
- FUNCTION FORMAT_ERROR_STACK() RETURN VARCHAR(5000);
- FUNCTION FORMAT_ERROR_BACKTRACE() RETURN VARCHAR(5000);
- END SYSDBA.DBMS_UTILITY;
- /
- ----------数据库通用工具包(实现)------------------
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_UTILITY
- IS
- FUNCTION GET_TIME() RETURN BIGINT
- IS
- LANGUAGE "C"
- NAME "BLDIN_GET_TIME";
-
- FUNCTION FORMAT_ERROR_STACK() RETURN VARCHAR(5000)
- IS
- BEGIN
- return SQLERRM;
- END;
-
- FUNCTION FORMAT_ERROR_BACKTRACE() RETURN VARCHAR(5000)
- IS
- LANGUAGE "C"
- NAME "BLDIN_FORMAT_ERROR_BACKTRACE";
-
- END SYSDBA.DBMS_UTILITY;
- /
- CREATE OR REPLACE PACKAGE DBMS_RANDOM AS
- -- Seed with a binary integer
- PROCEDURE SEED(val IN INTEGER);
- -- Seed with a string (up to length 2000)
- PROCEDURE SEED(val IN VARCHAR2);
- -- Get a random 18-digit precision number, 0.0 <= value < 1.0
- FUNCTION VALUE RETURN NUMBER(38,18);
- -- get a random Oracle number x, low <= x < high
- FUNCTION VALUE (low IN NUMBER, high IN NUMBER) RETURN NUMBER(38,18);
- -- get a random number from a normal distribution
- FUNCTION normal RETURN NUMBER ;
- -- get a random string
- FUNCTION STRING (opt char, len NUMBER)
- /* "opt" specifies that the returned string may contain:
- 'u','U' : upper case alpha characters only
- 'l','L' : lower case alpha characters only
- 'a','A' : alpha characters only (mixed case)
- 'x','X' : any alpha-numeric characters (upper)
- 'p','P' : any printable characters
- */
- RETURN VARCHAR2 ; -- string of <len> characters
- -- Obsolete, just calls seed(val)
- PROCEDURE INITIALIZE(val IN INTEGER);
- -- Obsolete, get integer in ( -power(2,31) <= random < power(2,31) )
- FUNCTION RANDOM RETURN INTEGER;
- TYPE NUM_ARRAY IS TABLE OF NUMBER(38,38) INDEX BY INTEGER;
- END DBMS_RANDOM;
- /
- CREATE OR REPLACE PACKAGE BODY DBMS_RANDOM AS
- mem num_array; -- big internal state hidden from the user
- counter INTEGER := 55; -- counter through the results
- saved_norm NUMBER := NULL; -- unused random normally distributed value
- need_init BOOLEAN := TRUE; -- do we still need to initialize
- -- Seed the random number generator with a INTEGER
- PROCEDURE SEED(val IN INTEGER) IS
- BEGIN
- SEED(TO_CHAR(val));
- END SEED;
- -- Seed the random number generator with a string.
- PROCEDURE SEED(val IN VARCHAR2) IS
- junk VARCHAR2(2000);
- piece VARCHAR2(20);
- randval NUMBER(38,37);
- mytemp NUMBER(38,0);
- vatemp NUMBER(38,14);
- j INTEGER;
- BEGIN
- need_init := FALSE;
- saved_norm := NULL;
- counter := 0;
- junk := val;
- FOR i IN 0..54 LOOP
- piece := SUBSTR(junk,1,19);
- randval := 0;
- j := 1;
- -- convert 19 characters to a 38-digit number
- FOR j IN 1..19 LOOP
- randval := 1e2*randval + NVL(ASCII(SUBSTR(piece,j,1)),0.0);
- END LOOP;
- -- try to avoid lots of zeros
- randval := randval*1e-38+i*.01020304050607080910111213141516171819;
- mem(i) := randval - TRUNC(randval);
- -- we've handled these first 19 characters already; move on
- junk := SUBSTR(junk,20);
- END LOOP;
- randval := mem(54);
- FOR j IN 0..10 LOOP
- FOR i IN 0..54 LOOP
-
- -- barrelshift mem(i-1) by 24 digits
- vatemp := randval * 1e24;
- mytemp := TRUNC(randval);
- randval := (randval - mytemp) + (mytemp * 1e-38);
- -- add it to mem(i)
- randval := mem(i)+randval;
- IF (randval >= 1.0) THEN
- randval := randval - 1.0;
- END IF;
- -- record the result
- mem(i) := randval;
- END LOOP;
- END LOOP;
- END seed;
- -- give values to the user
- -- Delayed Fibonacci, pilfered from Knuth volume 2
- FUNCTION VALUE RETURN NUMBER(38,18) IS
- randval NUMBER(38,18);
- BEGIN
- counter := counter + 1;
- IF counter >= 55 THEN
- -- initialize if needed
- IF (need_init = TRUE) THEN
- SEED(TO_CHAR(SYSDATE,'MM-DD-YYYY HH24:MI:SS') ||
- USER || USERENV('SESSIONID'));
- ELSE
- -- need to generate 55 more results
- FOR i IN 0..30 LOOP
- randval := mem(i+24) + mem(i);
- IF (randval >= 1.0) THEN
- randval := randval - 1.0;
- END IF;
- mem(i) := randval;
- END LOOP;
- FOR i IN 31..54 LOOP
- randval := mem(i-31) + mem(i);
- IF (randval >= 1.0) THEN
- randval := randval - 1.0;
- END IF;
- mem(i) := randval;
- END LOOP;
- END IF;
- counter := 0;
- END IF;
- RETURN mem(counter)*mem(counter)*mem(counter);
- END VALUE;
- -- Random 38-digit number between LOW and HIGH.
- FUNCTION VALUE ( low in NUMBER, high in NUMBER) RETURN NUMBER(38,18)
- is
- val numeric(38,18);
- BEGIN
- val := VALUE();
- val := val*(high-low);
- RETURN val+low;
- END VALUE;
- -- Random numbers in a normal distribution.
- -- Pilfered from Knuth volume 2.
- FUNCTION NORMAL RETURN NUMBER is
- -- 38 decimal places: Mean 0, Variance 1
- v1 NUMBER(38,18);
- v2 NUMBER(38,18);
- r2 NUMBER(38,18);
- fac NUMBER(38,18);
- BEGIN
- IF saved_norm is not NULL THEN -- saved from last time
- v1 := saved_norm; -- to be returned this time
- saved_norm := NULL;
- ELSE
- r2 := 2;
- -- Find two independent uniform variables
- WHILE r2 > 1 OR r2 = 0 LOOP
- v1 := value();
- v1 := v1 + v1 - 1;
- v2 := value();
- v2 := v2 + v2 - 1;
- r2 := v1*v1 + v2*v2; -- r2 is radius
- END LOOP; -- 0 < r2 <= 1: in unit circle
- /* Now derive two independent normally-distributed variables */
- fac := sqrt(-2*ln(r2)/r2);
- v1 := v1*fac; -- to be returned this time
- saved_norm := v2*fac; -- to be saved for next time
- END IF;
- RETURN v1;
- END NORMAL;
- -- Random string. Pilfered from Chris Ellis.
- FUNCTION STRING (opt char, len NUMBER)
- RETURN VARCHAR2 is -- string of <len> characters
- optx char (1) := lower(opt);
- rng NUMBER;
- tmp NUMBER(38,18);
- n INTEGER;
- ccs VARCHAR2 (128); -- candidate character subset
- xstr VARCHAR2 (4000) := NULL;
- BEGIN
- IF optx = 'u' THEN -- upper case alpha characters only
- ccs := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- rng := 26;
- ELSIF optx = 'l' THEN -- lower case alpha characters only
- ccs := 'abcdefghijklmnopqrstuvwxyz';
- rng := 26;
- ELSIF optx = 'a' THEN -- alpha characters only (mixed case)
- ccs := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ||
- 'abcdefghijklmnopqrstuvwxyz';
- rng := 52;
- ELSIF optx = 'x' THEN -- any alpha-numeric characters (upper)
- ccs := '0123456789' ||
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- rng := 36;
- ELSIF optx = 'p' THEN -- any printable char (ASCII subset)
- ccs := ' !"#$%&''()*+,-./' || '0123456789' || ':;<=>?@' ||
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || '[\]^_`' ||
- 'abcdefghijklmnopqrstuvwxyz' || '{|}~' ;
- rng := 95;
- ELSE
- ccs := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- rng := 26; -- default to upper case
- END IF;
- FOR i IN 1 .. least(len,4000) LOOP
- /* Get random integer within specified range */
- tmp := rng * value;
- n := TRUNC(tmp) + 1;
- /* Append character to string */
- xstr := xstr || SUBSTR(ccs,n,1);
- END LOOP;
- RETURN xstr;
- END STRING;
- -- For compatibility with 8.1
- PROCEDURE INITIALIZE(val IN INTEGER) IS
- BEGIN
- SEED(to_char(val));
- END INITIALIZE;
- -- For compatibility with 8.1
- -- Random INTEGER, -power(2,31) <= Random < power(2,31)
- -- Delayed Fibonacci, pilfered from Knuth volume 2
- FUNCTION RANDOM RETURN INTEGER IS
- BEGIN
- RETURN TRUNC(Value*4294967296)-2147483648;
- END RANDOM;
- END DBMS_RANDOM;
- /
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_JOB
- IS
- PROCEDURE SUBMIT(job OUT INTEGER,what IN VARCHAR,next_date IN DATETIME DEFAULT sysdate,pop_interval IN VARCHAR DEFAULT NULL,no_parse IN BOOLEAN DEFAULT FALSE,instance IN INTEGER DEFAULT 0,force IN BOOLEAN DEFAULT FALSE);
- PROCEDURE RUN(job INTEGER,force IN BOOLEAN DEFAULT FALSE);
- PROCEDURE REMOVE(job INTEGER);
- END SYSDBA.DBMS_JOB;
- /
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_JOB
- IS
- PROCEDURE SUBMIT(job OUT INTEGER,what IN VARCHAR,next_date IN DATETIME DEFAULT sysdate,pop_interval IN VARCHAR DEFAULT NULL,no_parse IN BOOLEAN DEFAULT FALSE,instance IN INTEGER DEFAULT 0,force IN BOOLEAN DEFAULT FALSE)
- IS
- name varchar;
- BEGIN
- name := dbms_random.string('u',20);
- DBMS_SCHEDULER.CREATE_JOB(name,'stored_procedure',what,0,next_date,pop_interval,'2099-12-31 00:00:00','JOB_CLASS',force,FALSE,NULL);
- SELECT JOB_ID INTO job FROM ALL_JOBS WHERE JOB_NAME=name;
- END;
- PROCEDURE RUN(job INTEGER,force IN BOOLEAN DEFAULT FALSE)
- IS
- name varchar;
- BEGIN
- SELECT JOB_NAME INTO name FROM ALL_JOBS WHERE JOB_ID=job;
- DBMS_SCHEDULER.RUN_JOB(name,force);
- END;
- PROCEDURE REMOVE(job INTEGER)
- IS
- name varchar;
- BEGIN
- SELECT JOB_NAME INTO name FROM ALL_JOBS WHERE JOB_ID=job;
- DBMS_SCHEDULER.DROP_JOB(name,TRUE);
- END;
-
- END SYSDBA.DBMS_JOB;
- /
- ----------SYNONYM DEFINE-------------
- CREATE PUBLIC SYNONYM RECYCLEBIN FOR USER_RECYCLEBIN;
- /
- /** 使用时开启
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_SESSION
- IS
- PROCEDURE SET_CONTEXT(context_name VARCHAR,attribute VARCHAR,value VARCHAR,username VARCHAR DEFAULT NULL,client_id VARCHAR DEFAULT NULL);
- END SYSDBA.DBMS_SESSION;
- ----包体
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_SESSION
- IS
- PROCEDURE SET_CONTEXT(context_name VARCHAR,attribute VARCHAR,value VARCHAR,username VARCHAR DEFAULT NULL,client_id VARCHAR DEFAULT NULL)
- IS
- LANGUAGE "C"
- NAME "BLDIN_SET_CONTEXT";
-
- END SYSDBA.DBMS_SESSION;
- CREATE OR REPLACE PACKAGE SYSDBA.DBMS_RLS
- IS
- CONTEXT_SENSITIVE integer :=1;
- PROCEDURE ADD_POLICY(
- object_schema IN VARCHAR,
- object_name IN VARCHAR,
- policy_name IN VARCHAR,
- function_schema IN VARCHAR,
- policy_function IN VARCHAR,
- statement_types IN VARCHAR,
- update_check IN BOOLEAN DEFAULT FALSE,
- enable IN BOOLEAN DEFAULT TRUE,
- static_policy IN BOOLEAN DEFAULT FALSE,
- policy_type IN BINARY_INTEGER DEFAULT NULL,
- long_predicate IN BOOLEAN DEFAULT FALSE,
- sec_relevant_cols IN VARCHAR2 DEFAULT NULL,
- sec_relevant_cols_opt IN BINARY_INTEGER DEFAULT NULL);
- PROCEDURE DROP_POLICY(
- object_schema IN VARCHAR,
- object_name IN VARCHAR,
- policy_name IN VARCHAR);
- END SYSDBA.DBMS_RLS;
- ----包体
- CREATE OR REPLACE PACKAGE BODY SYSDBA.DBMS_RLS
- IS
- PROCEDURE ADD_POLICY(
- object_schema IN VARCHAR,
- object_name IN VARCHAR,
- policy_name IN VARCHAR,
- function_schema IN VARCHAR,
- policy_function IN VARCHAR,
- statement_types IN VARCHAR,
- update_check IN BOOLEAN DEFAULT FALSE,
- enable IN BOOLEAN DEFAULT TRUE,
- static_policy IN BOOLEAN DEFAULT FALSE,
- policy_type IN BINARY_INTEGER DEFAULT NULL,
- long_predicate IN BOOLEAN DEFAULT FALSE,
- sec_relevant_cols IN VARCHAR2 DEFAULT NULL,
- sec_relevant_cols_opt IN BINARY_INTEGER DEFAULT NULL)
- IS
- LANGUAGE "C"
- NAME "BLDIN_ADD_POLICY";
-
- PROCEDURE DROP_POLICY(
- object_schema IN VARCHAR,
- object_name IN VARCHAR,
- policy_name IN VARCHAR)
- IS
- LANGUAGE "C"
- NAME "BLDIN_DROP_POLICY";
- END SYSDBA.DBMS_RLS;
- **/
|