MySQL資料移植到Oracle中碰到的異常總結一
終於將mysql中的表與資料移植到了oracle中,於是修改後hbm.xml後,進行了逐個的單元測試(經驗:測試查詢所有session.createQuery().list()會將大部分問題暴露出來!!測試新增可以試驗主鍵生成策略是否可行!因新增太過麻煩,一般測試幾個典型即可)。發現了很多問題,特此總結!
1.Caused by: java.sql.SQLException: ORA-01747: user.table.column, table.column 或列說明無效
原因:表中的欄位佔用了oracle中的關鍵字!
處理:檢查該表對應的oracle中的欄位是否佔用oracle的關鍵字,修改後,修改hbm.xml中的
<property name="level" type="integer">
<column name="level_" />
即可。
2、Caused by: java.sql.SQLException: 無法轉換為內部表示
原因:oracle表中欄位的型別與該表在專案中的型別不一致
處理:
1)檢查你的報錯資訊,一般檢視上圖紅框位置,它會告訴你大概是什麼的型別錯誤,然後檢查資料與hbm.xml和javabean是否一致。
2)因為oracle中不支援boolean型別,所以如果你的javabean中有該型別,則需要根據情況進行更改(oracle中會將boolean型別轉為char型別)
3)一般情況下最後需要修改
<property name="level" type="integer">
即可!
3、Caused by: java.sql.SQLException: ORA-00904:"INFOCONNEC0_"."RECYCLESHEETNO": 識別符號無效
原因:我出錯的原因是我的oracle中沒有這個欄位,而hbm.xml和專案中的表竟然有該欄位
處理:根據情況是在資料庫中新增欄位,或者將hbm.xml中的這幾個欄位註釋掉...
4、Caused by: java.sql.BatchUpdateException: ORA-00001: 違反唯一約束條件 (NASEXT.PRIMARY_97)
原因:網上的原因很多,我說一下我碰到的吧,因為是從mysql移植資料到oracle,所以oracle中存在了很多資料,當新增的時候,根據oracle序列逐步遞增,但因為原始資料的佔用,導致該錯誤...(有點牽強,但現在的現象只能讓我這麼理解了...)
處理:我自己修改了oracle中序列的起始點(比如已經存在100條資料,那麼我的起始點就設定了101或者更高),發現就不會再報這個錯誤了...但是總覺的有點不對勁(難道oracle不會自我查詢主鍵,然後找到沒有被佔用的數字使用麼?不應該啊...)
相關推薦
MySQL資料移植到Oracle中碰到的異常總結一
終於將mysql中的表與資料移植到了oracle中,於是修改後hbm.xml後,進行了逐個的單元測試(經驗:測試查詢所有session.createQuery().list()會將大部分問題暴露出來!!測試新增可以試驗主鍵生成策略是否可行!因新增太過麻煩,
Oracle中RAISE異常
信息 true back 文本 acl 一個 處理 發生 處理異常 由三種方式拋出異常 1. 通過PL/SQL運行時引擎 2. 使用RAISE語句 3. 調用RAISE_APPLICATION_ERROR存儲過程 當數據庫或PL/SQL在運行時發生錯
JAVA中各種異常總結
1.java.lang.nullpointerexception這個異常大家肯定都經常遇到,異常的解釋是"程式遇上了空指標",簡單地說就是呼叫了未經初始化的物件或者是不存在的物件,這個錯誤經常出現在建立圖片,呼叫陣列這些操作中,比如圖片未經初始化,或者圖片建立時的路徑錯誤等等。對陣列操作中出現空
利用sqoop將hive資料匯入Oracle中(踩的坑)
教程很多,這裡只說踩過的坑 1.下載sqoop時,還得下一個bin的包,拿到sqoop-1.4.6.jar 的包,放到hadoop的lib目錄下 2.匯入oracle,執行程式碼時,使用者名稱和表名必須大寫!且資料庫建表時表名必須大寫! 示例程式碼: sqoop expo
轉:ORACLE 中ROWNUM用法總結!
oracle 分頁查詢語句:select * from (select u.*,rownum r from (select * from userifno) u where rownum<大值) where r>小值 問題: ①為什麼一定要用 u.*? 原因:Or
資料在記憶體中的儲存總結
資料型別介紹: 基本內建型別分別為: char //字元資料型別 short //短整型 int //整形 long //長整型 long long //更長的整形 float //單精度浮點數 double
oracle資料庫總結(七)--ORACLE 中ROWNUM用法總結! (轉)
來自:http://www.cnblogs.com/chinhr/archive/2007/09/30/911685.html ORACLE 中ROWNUM用法總結! 對於 Oracle 的 rownum 問題,很多資料都說不支援>,>=,=,betwe
mysql資料匯入mongodb中
# 把mysql資料庫中的資料匯入mongodb中 import pymysql import pymongo # 建立mysql的資料庫連線 con = pymysql.connect(host='localhost', port=3306, user='root', password='12345
ORACLE 中ROWNUM用法總結!
對於 Oracle 的 rownum 問題,很多資料都說不支援>,>=,=,between...and,只能用以上符號(<、<=、!=),並非說用>,& gt;=,=,between..and 時會提示SQL語法錯誤,而是經常是查不出一條
利用sqoop將hive資料匯入Oracle中
首先: 如oracle則執行sqoop list-databases --connect jdbc:oracle:thin:@//192.168.27.235:1521/ORCL --username DATACENTER -P 來測試是否能正確連線資料庫 如mysql則執行sq
MySql函式, 實現Oracle中的to_data和to_char函式
1. to_date mysql中用法為:str_to_date('2017-05-01 23:59:59','%Y-%m-%d %T') 2. to_char mysql中的用法: date_format(date,'%Y-%m-%d %T') 正則表示式
ORACLE中觸發器實現刪除一張表中資料同時刪除另一表中相關資料
這是我的第一篇部落格。 有兩張表:BOOK、PGEVIEW,分別有一個名為BOOKID的欄位 想實現的功能:刪除BOOK表中的一行資料時刪除與PAGEVIEW表中BOOKID相等的資料行 實現方法:在BOOK表中建立一個觸發器BOOK_TRG_DELETE,具體實現語句如下
sqoop mysql資料匯入Hive中
sqoop import --connect jdbc:mysql://192.168.8.97:3306/db1?charset-utf8 --username root --password 123456 --table pd_info --columns "pid,cid" --fields-term
資料探勘中的異常檢測
資料探勘中異常檢測 最近在做聚類,是利用出租車上車下車地點資訊聚類商圈和生活區域,在實戰過程中,遇到了很多問題 其一:聚類中心點的確定,我們聚類結果要返回一個經緯度資訊,或者說這是一個商圈的中心地點的一個顯示,最初是想用K-means做個簡單的展示版本,不得不感嘆K-mea
sqoop將Mysql資料匯入Hive中
注:筆者用的是sqoop1.4.6版本 一、將Mysql資料匯入Hive中 命令: sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true --con
ORACLE 中ROWNUM用法總結
對於 Oracle 的 rownum 問題,很多資料都說不支援>,>=,=,between...and,只能用以上符號(<、<=、!=),並非說用>,& gt;=,=,between..and 時會提示SQL語法錯誤,而是經常是查不出一條
[MySQL] MySQL資料移植遷移 + 備份【InnoDB儲存引擎】
儲存引擎: Myslq目前比較常用的兩個資料庫儲存引擎分別是MyISAM與InnoDB,MyISAM與InnoDB的主要的不同點在於效能和事務控制上。這裡簡單的介紹一下兩者間的區別: MyISAM是MySQL5.5之前版本預設的資料庫儲存引擎。MYISA
java中的異常(一)
數組 col logs exception 並且 test 但是 blog ring java異常的概念 執行期的錯誤(javac xxx.java) 運行期的錯誤(java xxx) 這裏講的是運行期出現的錯誤 class TestEx { public s
MySQL數據庫中的索引(一)——索引實現原理
物理地址 關鍵字 必須 增加 pic 搜索索引 而是 哈希索引 掃描 今天我們來探討一下數據庫中一個很重要的概念:索引。 MySQL官方對索引的定義為:索引(Index)是幫助MySQL高效獲取數據的數據結構,即索引是一種數據結構。 我們知道,數據庫查詢是數據庫的最主要功能
Oracle中常見的Hint(一)
Oracle中的Hint可以用來調整SQL的執行計劃,提高SQL執行效率。下面分類介紹Oracle資料庫中常見的Hint。這裡描述的是Oracle11g R2中的常見Hint,Oracle資料庫中各個版本中的Hint都不盡相同,所以這裡講述的的Hint可能並不適用於Oracle早期的版本。