所有回答列表(1)
迷彩风情 LV26
2014年10月17日
一:解决办法:如下,在这里还要感谢@遇见的热情帮助!
二:最后的的SQL如下,主要是看红色部分!
CREATE OR REPLACE PROCEDURE MIP.MIP_PARSE (xmlStr IN CLOB) IS RENO VARCHAR2 (100); AIRLINE VARCHAR2 (100); FFID VARCHAR2 (100); FFID_A VARCHAR2 (100); FFID_D VARCHAR2 (100); ABNS VARCHAR2 (100); ACFT VARCHAR2 (100); CHDT VARCHAR2 (100); EIBT VARCHAR2 (100); FATA VARCHAR2 (100); FETA VARCHAR2 (100); FSTA VARCHAR2 (100); LMDT VARCHAR2 (100); LMUR VARCHAR2 (100); PSTM VARCHAR2 (100); RWAY VARCHAR2 (100); SPOT VARCHAR2 (100); STND VARCHAR2 (100); A_TOBT VARCHAR2 (100); A_WEATHER VARCHAR2 (100); ASAT VARCHAR2 (100); BCTM VARCHAR2 (100); BOTM VARCHAR2 (100); BSTM VARCHAR2 (100); C_TOBT VARCHAR2 (100); COBT VARCHAR2 (100); CTOT VARCHAR2 (100); DINT VARCHAR2 (100); DLAB VARCHAR2 (100); DOUT VARCHAR2 (100); EDDI VARCHAR2 (100); EOBT VARCHAR2 (100); EPGT VARCHAR2 (100); EPOT VARCHAR2 (100); FATD VARCHAR2 (100); FSTD VARCHAR2 (100); OFTM VARCHAR2 (100); STDI VARCHAR2 (100); TSAT VARCHAR2 (100); --新增字段 FLIGHTNUMBER VARCHAR2 (100); FLIGHTMARK VARCHAR2 (100); --定义出港信息表要格式的时间字段 A_TOBT_D VARCHAR2 (100); ASAT_D VARCHAR2 (100); BCTM_D VARCHAR2 (100); BOTM_D VARCHAR2 (100); BSTM_D VARCHAR2 (100); C_TOBT_D VARCHAR2 (100); COBT_D VARCHAR2 (100); CTOT_D VARCHAR2 (100); DINT_D VARCHAR2 (100); DOUT_D VARCHAR2 (100); EDDI_D VARCHAR2 (100); EOBT_D VARCHAR2 (100); EPGT_D VARCHAR2 (100); EPOT_D VARCHAR2 (100); FATD_D VARCHAR2 (100); FSTD_D VARCHAR2 (100); LMDT_D VARCHAR2 (100); OFTM_D VARCHAR2 (100); STDI_D VARCHAR2 (100); TSAT_D VARCHAR2 (100); --定义进港信息表要格式化的时间字段 EIBT_A VARCHAR2 (100); FATA_A VARCHAR2 (100); FETA_A VARCHAR2 (100); FSTA_A VARCHAR2 (100); LMDT_A VARCHAR2 (100); PSTM_A VARCHAR2 (100); SPOT_A VARCHAR2 (100); COUNTS NUMBER(36); --出港信息要修改的除时间外的字段 STND_D VARCHAR2 (100); A_WEATHER_D VARCHAR2 (100); ABNS_D VARCHAR2 (100); ACFT_D VARCHAR2 (100); AIRLINE_D VARCHAR2 (100); DLAB_D VARCHAR2 (100); LMUR_D VARCHAR2 (100); RENO_D VARCHAR2 (100); RWAY_D VARCHAR2 (100); -- 进港信息要修改的除时间外的字段 ABNS_A VARCHAR2 (100); ACFT_A VARCHAR2 (100); AIRLINE_A VARCHAR2 (100); CHDT_A VARCHAR2 (100); RENO_A VARCHAR2 (100); LMUR_A VARCHAR2 (100); RWAY_A VARCHAR2 (100); STND_A VARCHAR2 (100); BEGIN RENO := GetXmlNodeValue (xmlStr, 'RENO'); AIRLINE := GetXmlNodeValue (xmlStr, 'AIRLINE'); FFID := GetXmlNodeValue (xmlStr, 'FFID'); ABNS := GetXmlNodeValue (xmlStr, 'ABNS'); ACFT := GetXmlNodeValue (xmlStr, 'ACFT'); CHDT := GetXmlNodeValue (xmlStr, 'CHDT'); EIBT := GetXmlNodeValue (xmlStr, 'EIBT'); FATA := GetXmlNodeValue (xmlStr, 'FATA'); FETA := GetXmlNodeValue (xmlStr, 'FETA'); FFID := GetXmlNodeValue (xmlStr, 'FFID'); FSTA := GetXmlNodeValue (xmlStr, 'FSTA'); LMDT := GetXmlNodeValue (xmlStr, 'LMDT'); LMUR := GetXmlNodeValue (xmlStr, 'LMUR'); PSTM := GetXmlNodeValue (xmlStr, 'PSTM'); RWAY := GetXmlNodeValue (xmlStr, 'RWAY'); SPOT := GetXmlNodeValue (xmlStr, 'SPOT'); STND := GetXmlNodeValue (xmlStr, 'STND'); A_TOBT := GetXmlNodeValue (xmlStr, 'A_TOBT'); A_WEATHER := GetXmlNodeValue (xmlStr, 'A_WEATHER'); ASAT := GetXmlNodeValue (xmlStr, 'ASAT'); BCTM := GetXmlNodeValue (xmlStr, 'BCTM'); BOTM := GetXmlNodeValue (xmlStr, 'BOTM'); BSTM := GetXmlNodeValue (xmlStr, 'BSTM'); C_TOBT := GetXmlNodeValue (xmlStr, 'C_TOBT'); COBT := GetXmlNodeValue (xmlStr, 'COBT'); CTOT := GetXmlNodeValue (xmlStr, 'CTOT'); DINT := GetXmlNodeValue (xmlStr, 'DINT'); DLAB := GetXmlNodeValue (xmlStr, 'DLAB'); DOUT := GetXmlNodeValue (xmlStr, 'DOUT'); EDDI := GetXmlNodeValue (xmlStr, 'EDDI'); EOBT := GetXmlNodeValue (xmlStr, 'EOBT'); EPGT := GetXmlNodeValue (xmlStr, 'EPGT'); EPOT := GetXmlNodeValue (xmlStr, 'EPOT'); FATD := GetXmlNodeValue (xmlStr, 'FATD'); FSTD := GetXmlNodeValue (xmlStr, 'FSTD'); OFTM := GetXmlNodeValue (xmlStr, 'OFTM'); STDI := GetXmlNodeValue (xmlStr, 'STDI'); TSAT := GetXmlNodeValue (xmlStr, 'TSAT'); --出港信息表中时间字段的时间格式函数的用法 A_TOBT_D := FORMATDATEVALUE (A_TOBT, 'A_TOBT_D'); ASAT_D := FORMATDATEVALUE (ASAT, 'ASAT_D'); BCTM_D := FORMATDATEVALUE (BCTM, 'BCTM_D'); BOTM_D := FORMATDATEVALUE (BOTM, 'BOTM_D'); BSTM_D := FORMATDATEVALUE (BSTM, 'BSTM_D'); C_TOBT_D := FORMATDATEVALUE (C_TOBT, 'C_TOBT_D'); COBT_D := FORMATDATEVALUE (COBT, 'COBT_D'); CTOT_D := FORMATDATEVALUE (CTOT, 'CTOT_D'); DINT_D := FORMATDATEVALUE (DINT, 'DINT_D'); DOUT_D := FORMATDATEVALUE (DOUT, 'DOUT_D'); EDDI_D := FORMATDATEVALUE (EDDI, 'EDDI_D'); EOBT_D := FORMATDATEVALUE (EOBT, 'EOBT_D'); EPGT_D := FORMATDATEVALUE (EPGT, 'EPGT_D'); EPOT_D := FORMATDATEVALUE (EPOT, 'EPOT_D'); FATD_D := FORMATDATEVALUE (FATD, 'FATD_D'); FSTD_D := FORMATDATEVALUE (FSTD, 'FSTD_D'); LMDT_D := FORMATDATEVALUE (LMDT, 'LMDT_D'); OFTM_D := FORMATDATEVALUE (OFTM, 'OFTM_D'); STDI_D := FORMATDATEVALUE (STDI, 'STDI_D'); TSAT_D := FORMATDATEVALUE (TSAT, 'TSAT_D'); --进港信息表中时间字段的时间格式函数的用法 EIBT_A := FORMATDATEVALUE (EIBT, 'EIBT_A'); FATA_A := FORMATDATEVALUE (FATA, 'FATA_A'); FETA_A := FORMATDATEVALUE (FETA, 'FETA_A'); FSTA_A := FORMATDATEVALUE (FSTA, 'FSTA_A'); LMDT_A := FORMATDATEVALUE (LMDT, 'LMDT_A'); PSTM_A := FORMATDATEVALUE (PSTM, 'PSTM_A'); SPOT_A := FORMATDATEVALUE (SPOT, 'SPOT_A'); --出港信息要修改的除时间外的字段 STND_D := GetXmlNodeValue (xmlStr, 'STND'); A_WEATHER_D := GetXmlNodeValue (xmlStr, 'A_WEATHER'); ABNS_D := GetXmlNodeValue (xmlStr, 'ABNS'); ACFT_D := GetXmlNodeValue (xmlStr, 'ACFT'); AIRLINE_D := GetXmlNodeValue (xmlStr, 'AIRLINE'); DLAB_D := GetXmlNodeValue (xmlStr, 'DLAB'); LMUR_D := GetXmlNodeValue (xmlStr, 'LMUR'); RENO_D := GetXmlNodeValue (xmlStr, 'RENO'); RWAY_D := GetXmlNodeValue (xmlStr, 'RWAY'); --进港信息要修改的除时间外的字段 ABNS_A := GetXmlNodeValue (xmlStr, 'ABNS'); ACFT_A := GetXmlNodeValue (xmlStr, 'ACFT'); AIRLINE_A := GetXmlNodeValue (xmlStr, 'AIRLINE'); CHDT_A := GetXmlNodeValue (xmlStr, 'CHDT'); RENO_A := GetXmlNodeValue (xmlStr, 'RENO'); LMUR_A := GetXmlNodeValue (xmlStr, 'LMUR'); RWAY_A := GetXmlNodeValue (xmlStr, 'RWAY'); STND_A := GetXmlNodeValue (xmlStr, 'STND'); IF INSTR(FFID,'-D-') > 0 THEN FFID_D := FFID; --截取航班号 FLIGHTNUMBER := SUBSTR(FFID_D,INSTR(FFID_D,'-',1)+1,INSTR(FFID_D,'-',INSTR(FFID_D,'-',1)+1)-INSTR(FFID_D,'-',1)-1); --截取出港标志 FLIGHTMARK := SUBSTR(FFID_D,INSTR(FFID_D,'-',2,2)+1,INSTR(FFID_D,'-',2,3)-1-INSTR(FFID_D,'-',2,2)); --UPDATE之前要先根据FFID查询一下看看数据表中是否已经存在该条数据,如果存在就UPDATE,如果不存在就SAVE SELECT COUNT(1) INTO COUNTS FROM TB_CMS_FLGTINFO_D where FFID = FFID_D; IF COUNTS > 0 THEN UPDATE TB_CMS_FLGTINFO_D SET A_TOBT = A_TOBT_D, A_WEATHER = A_WEATHER_D, ABNS = ABNS_D, ACFT = ACFT_D, AIRLINE = AIRLINE_D, ASAT = ASAT_D, BCTM = BCTM_D, BOTM = BOTM_D, BSTM = BSTM_D, C_TOBT = C_TOBT_D, COBT = COBT_D, CTOT = CTOT_D, DINT = DINT_D, DLAB = DLAB_D, DOUT = DOUT_D, EDDI = EDDI_D, EOBT = EOBT_D, EPGT = EPGT_D, EPOT = EPOT_D, FATD = FATD_D, FSTD = FSTD_D, LMDT = LMDT_D, LMUR = LMUR_D, OFTM = OFTM_D, RENO = RENO_D, RWAY = RWAY_D, STDI = STDI_D, STND = STND_D, TSAT = TSAT_D WHERE FFID = FFID_D; ELSE INSERT INTO TB_CMS_FLGTINFO_D (ID,A_TOBT,A_WEATHER,ABNS,ACFT,AIRLINE,ASAT,BCTM,BOTM,BSTM,C_TOBT,COBT,CTOT,DINT,DLAB,DOUT,EDDI,EOBT,EPGT,EPOT,FATD,FFID,FLIGHTNUMBER, FLIGHTMARK,FSTD,LMDT,LMUR,OFTM,RENO,RWAY,STDI,STND,TSAT) VALUES (FLGTINFO_D_SEQ.NEXTVAL, A_TOBT_D, A_WEATHER, ABNS, ACFT, AIRLINE, ASAT_D, BCTM_D, BOTM_D, BSTM_D, C_TOBT_D, COBT_D, CTOT_D, DINT_D, DLAB, DOUT_D, EDDI_D, EOBT_D, EPGT_D, EPOT_D, FATD_D, FFID_D, FLIGHTNUMBER, FLIGHTMARK, FSTD_D, LMDT_D, LMUR, OFTM_D, RENO, RWAY, STDI_D, STND, TSAT_D); END IF; ELSE FFID_A := FFID; --截取航班号 FLIGHTNUMBER := SUBSTR(FFID_A,INSTR(FFID_A,'-',1)+1,INSTR(FFID_A,'-',INSTR(FFID_A,'-',1)+1)-INSTR(FFID_A,'-',1)-1); --截取出港标志 FLIGHTMARK := SUBSTR(FFID_A,INSTR(FFID_A,'-',2,2)+1,INSTR(FFID_A,'-',2,3)-1-INSTR(FFID_A,'-',2,2)); --UPDATE之前要先根据FFID查询一下看看数据表中是否已经存在该条数据,如果存在就UPDATE,如果不存在就SAVE SELECT COUNT(1) INTO COUNTS FROM TB_CMS_FLGTINFO_A where FFID = FFID_A; IF COUNTS > 0 THEN UPDATE TB_CMS_FLGTINFO_A SET ABNS = ABNS_A, ACFT = ACFT_A, AIRLINE = AIRLINE_A, CHDT = CHDT_A, RENO = RENO_A, EIBT = EIBT_A, FATA = FATA_A, FETA = FETA_A, FSTA = FSTA_A, LMDT = LMDT_A, LMUR = LMUR_A, PSTM = PSTM_A, RWAY = RWAY_A, SPOT = SPOT_A, STND = STND_A WHERE FFID = FFID_A; ELSE INSERT INTO TB_CMS_FLGTINFO_A (ID,ABNS,ACFT,AIRLINE,CHDT,FFID,FLIGHTNUMBER,FLIGHTMARK,RENO,EIBT,FATA,FETA,FSTA,LMDT,LMUR,PSTM,RWAY,SPOT,STND) VALUES (FLGTINFO_A_SEQ.NEXTVAL, ABNS, ACFT, AIRLINE, CHDT, FFID_A, FLIGHTNUMBER, FLIGHTMARK, RENO, EIBT_A, FATA_A, FETA_A, FSTA_A, LMDT_A, LMUR, PSTM_A, RWAY, SPOT_A, STND); END IF; END IF; COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE (SQLERRM); END MIP_PARSE; /
评论(2)
最佳答案
- 等 最代码怎么获取牛币啊?
- 完 谁来告诉我最代码上线的时间,答对者给5牛币,先来先得
- 等 牛友们,大家好,你们做程序员多久了?现在还好吗?
- 完 在微信打开的页面里进行app下载
- 等 最代码2014年欢乐聚声会
- 完 mysql如何查询表数据并且对3个字段降序的SQL?
- 完 最代码牛币机制改革
- 完 成功的在bae上使用了自定义运行环境 jetty+nginx的组合,大家对jetty+nginx优化有哪些心得?
- 完 进来分享一下各位牛牛是如何加入最代码大家庭的?
- 等 为什么java BufferedImage类处理大图直接抛出内存溢出的异常?
- 等 最代码是否开发手机app客户端?
- 完 java程序员学习哪些java的技术?java有哪些框架?都能做哪方面的开发?
- 等 php格式网页文件怎么运行?
- 等 Java volatile值获取的问题
- 等 前端vue,拦截了登录后台后,返回的token,requests拦截token,但是发送请求的时候,就出现跨越异常
- 等 大专本科计算机科班怎么找到Java工作?
- 等 eclipse怎么把三个java swing游戏项目合成一个项目?
- 完 伙伴们,大家都有什么好的解压方式么,分享一下~
- 完 三四线城市,6、7k,运维工作,索然无味,想去辞职上培训,各位牛牛有什么建议嘛
- 等 jsp页面输入中文变成问号
- 等 JPA在线上运行一段时间后报错Caused by: java.lang.IncompatibleClassChangeError: null
- 等 PHP 这个规则用preg_match_all怎么写
- 等 大佬们,有没有知道Alfresco如何配置LDAP登录呢?
- 等 php的install目录是框架带的吗?
相关问答
- 等 oracle安装为什么报错ORA-00604:error occurred at recursive SQL level 1?
- 等 Oracle 11g、拼接的字符串超过了4000、有什么办法吗?
- 等 怎么在oracle数据库创建用户,并赋权限?
- 完 oracle查询sql报错SqlExceptionHelper:131 ORA-00933: SQL command not properly ended
- 完 ORACLE:mybatis执行更新语句,报ORA-12541无监听程序,ORA06512,ORA04088,触发器执行出错
- 等 Oracle OCP认证考试的问题
- 等 oracle如何优化大量数据插入?
- 完 oracle怎么做表空间分文件存储?
- 完 oracle建表分区问题
- 等 java调用oracle存储过程如何传入blob参数?
- 等 阿里云服务器安装oracle为什么失败?
- 完 求教oracle导入dmp文件问题
最近浏览
luoweijia
2020年5月12日
暂无贡献等级
倖福的猪 LV8
2019年6月12日
padorasword1 LV2
2018年3月9日
libuyun2016 LV1
2017年7月5日
shitou_321 LV2
2017年6月5日
自导自演 LV17
2017年5月14日
fengorz
2016年8月4日
暂无贡献等级
jnliulu
2015年1月15日
暂无贡献等级
mjtljx LV42
2014年12月3日
BuJiBuFang
2014年11月13日
暂无贡献等级