1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835 |
- /*
- * VERSION: 12.4.0
- * LAST MODIFIED TIME: 2024-02-19
- */
- ----管理员工具包------------------
- 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,NON_NULL_RATE DOUBLE DEFAULT 0.0);
- 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,NON_NULL_RATE DOUBLE DEFAULT 0.0)
- 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);
- PROCEDURE OPEN_TABLE(name IN VARCHAR, --表名 ('*' 当前库下所有表,'schema_name.*' 指定模式下所有表,'tab_name' 当前库 模式下的表)
- node_id IN INTEGER) --节点id ('0' 当前节点, '-1' 所有节点, '大于0' 指定节点)
- AUTHID USER;
- 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";
-
- PROCEDURE OPEN_TABLE(name IN VARCHAR, node_id IN INTEGER)
- IS
- LANGUAGE "C"
- NAME "BLDIN_OPEN_TABLE";
- 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;
- **/
|