向oracle資料庫插入數據
❶ 向oracle資料庫中添加數據時提示ORA-00947: 沒有足夠的值
向oracle資料庫中添加數據時提示ORA-00947: 沒有足夠的值。是表1的結構有4個column,顯然插入的值只有三個,才會出現這個問題,再加個column的值。解決方法如下:
1、首先在計算機中,打開Oracle的連接程序,用新建的資料庫管理員,滑鼠左鍵單擊【伺服器】按鈕,如下圖所示。
❷ 如何實現sqlserver數據插入oracle資料庫
假設要將SQL
Server中的Northwind資料庫中的Procts表導出到Oracle的Scott用戶
首先需要有安裝SQL
Server企業版
1.打開工具:
開始->程序->
導入和SQL
Server數據導出數據
2.下一步,選擇數據源
[數據源]選擇「用於SQL
Server的Microsoft
OLE
DB提供程序」,這應該是預設值。
[伺服器]選擇要導出數據的伺服器,如果是本機,選擇(local)
[資料庫]選擇要導出的數據所在的庫,這里選擇Northwind
3.下一步,選擇目的
[目的]選擇Microsoft
ODBC
for
Oracle
[DSN]選擇用戶/系統DSN一項,然後在下拉列表框中找一個已經連接到了Scott用戶的DSN名稱。
如果下拉列表中沒有,點下拉列表框右側的[新建],出現創建新數據源界面。
接下來選擇系統數據源,下一步,在驅動程序列表中選擇Microsoft
ODBC
for
Oracle
下一步,完成,出現Microsoft
ODBC
for
Oracle安裝界面
[數據源名稱]隨便輸入,比如sss
[說明]可以不填
[用戶名稱]填入要SQL
Server數據導出到的Oracle用戶名稱,這里是scott
[伺服器]填入要連接到Oracle伺服器所使用的服務名,比方說使用sqlplus
scott/tiger@server1可以連接到資料庫,那麼這里就填入server1。如果本機就是伺服器,使用sqlplus
scott/tiger即可連接到資料庫,這里空著不填即可。
這樣就創建好了一個數據源sss,保證下拉列表框中選擇了sss一項。
[用戶名]填入SQL
Server數據導出到的Oracle用戶名稱,這里是scott
[密碼]填入SQL
Server數據導出到的Oracle用戶使用的密碼,這里是tiger
4.下一步,指定表復制或查詢
如果要導出的內容是整個表,選擇[從源資料庫復製表和視圖]
如果要導出的內容是表的一部分列,行,可以選擇[用一條查詢指定要傳輸的數據],這時需要寫出一個查詢語句
這里選擇第一項[從源資料庫復製表和視圖]
5.下一步,選擇源表和視圖
點中要導出的表Procts一行的復選框,目的、轉換兩欄就會出現內容。
目的可以用來選擇表名。轉換可以用來修改列的數據類型或是整個建表的SQL語句
6.下一步,保存、調度和復制包
選中立即運行
7.下一步,正在完成DTS導入/導出向導
8.完成
提示「成功地將n個表從Microsoft
SQLServer復制到了Oracle」
9.完成,關閉導入導出程序
注意:因為oracle的表名都是大寫的,而SQL的表可能是大小混寫的,所以導入後在oracle里查不到該表,比如這個Procts表在oracle里查詢就應該寫成select
*
from
scott."Procts";為了方便查詢可以通過批量修改表名為大寫以便後面導數據的工作。
❸ 怎麼在oracle資料庫插入數據
ORA-00604: 遞歸 SQL 級別 1 出現錯誤,ORA-01000: 超出打開游標的最大數
這兩個錯誤一般出現在利用代碼循環執行資料庫命令(例如將數據導入到資料庫)時,例如在C#中
1)建立一個OracleConnection
2)循環創建OracleCommand,並執行數據導入
3)關閉OracleConnection
當第二步的循環數比較小時,代碼運行正常。當循環數超過一定值(例如300),代碼就會出錯。提示:
ORA-01000: 超出打開游標的最大數
這是因為Oracle資料庫中打開的游標最大數為一定值,例如300,當代碼中第二步時, 循環中一個Command佔用了一個資料庫游標,執行的循環超過這個數時就會產生游標數目溢出錯誤。
解決辦法:
第二步循環中中每次執行完OracleCommand,都將command.dispose()下,釋放掉這個資源就好了
此外,也可以修改資料庫的最大游標數,不過這個方法治標不治本。
❹ oracle資料庫,批量插入數據腳本
批量插入數據腳本
1、第一種批量插入數據腳本,可以基本滿足要求。理解上較為簡單,所以這個最常用。
NEXTVAL和CURRVAL的區別:
1、如果 sequence.CURRVAL 和 sequence.NEXTVAL 都出現在一個 SQL 語句中,則序列只增加一次。在這種情況下,每個 sequence.CURRVAL 和 sequence.NEXTVAL 表達式都返回相同的值,不管在語句中sequence.CURRVAL 和 sequence.NEXTVAL 的順序。
執行腳本結果如下:
3、兩個表,同時批量插入數據的腳本
3、
4、 涉及子表時,批量插入數據腳本,
5、 批量修改數據 :
時間取數方式:
一、SYSTIMESTAMP(取當前系統值)
二、SYSDATE(取當前系統值,但只精確到時,分和秒都為0)
三、固定值為:TO_TIMESTAMP (-2-12 15:24:45.703000', 'yyyy-mm-dd hh24:mi:ss.ff6')
把固定的欄位改為變數:
方式一:』||i||』 例:』{「no」:「111』||i||』」}』(此方式)
方式二:concat 例:concat(concat(』{「blNo」:111"』,i),』"}』)
❺ 如何在oracle資料庫中的表裡批量插入記錄
1.
如果是對其它數據表中進行插入,可利用語句insert
into
A(欄位名)
select
相應的欄位名
from
B;commit;
2.
如果是從其它文檔進行批量插入,可把文檔導入都oracle的臨時表,可通過復制黏貼的方法,把相應欄位的數據復制到臨時表中,再進行1中操作
❻ 怎麼往 Access / Oracle 資料庫里一次性插入多條數據
可以利用excel進行多條數據的輸入,保存為表格文件,同時利用access導入表格的形式來實現。
1.首先創建新建資料庫。
2.點擊頭部導航的「外部數據」。
3.找到頭部導航的「導入Access資料庫」,左鍵點擊打開。
4.左側選擇要導入外部資料庫的方式,點擊瀏覽,找到外部資料庫存放的路徑。
5.選擇外部資料庫要添加的表,我們在這選擇「info」和「news」2張表做演示。
6.點擊「保存導入」後,你就會發現,原先你要創建的表中多了「info」和「news」2張表。到此,外部資料庫表成功導入。