A. oracle中如何insert
只能一條一條的寫,不能用一條語句insert多條。
當然你可以手寫到excel里,再在plsql里粘貼進去。
如果記錄多的話也可以研究研究數據導入。
B. 我是一個初學者,如何向oracle資料庫表中插入數據
工具/材料:電腦,oracle資料庫表
1.例test表中有如下數據。
C. oracle資料庫delete影響insert嗎
影響的情況主要看數據規模和並發量,如果是小型應用可以忽略不計。不過,delete最好改為標記刪除,在清理資料庫的時候統一操作。
D. oracle 怎麼insert數據
insert into 表名 values (欄位1對應的值, 欄位2對應的值2, 欄位3對應的值, ・・・・);
這樣寫試一下。
E. Oracle資料庫一次執行大量的insert語句,怎樣優化
1、原來表裡有多少數據,考慮是否可以刪除或失效索引?插入後重建
2、在業務空閑時,利用APPEND和PARALLEL進行插入
3、也可以設置每1W條記錄進行提交
F. oracle 資料庫在 insert 時能用函數嗎
這個完全可以,關鍵是看你用的這個函數返回值類型是否符合你要插入的對應欄位的類型。舉例如:
insert into emp(empno,empname) values(100,substr('',1,5));
等會,你說的是在into 部分嗎?那肯定不行,insert into後接表名,括弧內必須是表內欄位。
G. 我用Oracle資料庫建了一個表,在插入數據的時候顯示第一行insert語句違反唯一約束條件,這是怎麼回事啊
那是你的第一行記錄已經在表中存在了!可以使用一下語句驗證:
select * from xs where xh = '061101';
oracle不支持上面格式的插入。
建議用格式插入工具,間每行數據之前插入insert into xs values
之後替換,為;就可以了。
H. oracle資料庫中nvl可以用於insert語句中嗎
可以。
但是要看是怎麼用,要是在values後面,那麼我就不是十分確定了,畢竟沒這么用過,你可以試試。
如果是insert select語句那麼肯定是可以用的。
其實這種沒必要用nvl,你可以在建立表的時候在相應欄位設置一個默認值(default),如果插入值為null(或沒有相應的插入值),那麼就會自動轉成默認值,根本用不到nvl函數的。
I. Oracle中插入數據
前提:在做insert數據之前,如果是非生產環境,請將表的索引和約束去掉,待insert完成後再建索引和約束。
insert into tab1 select * from tab2; commit;
這是最基礎的insert語句,我們把tab2表中的數據insert到tab1表中。根據經驗,千萬級的數據可在1小時內完成。但是該方法產生的arch會非常快,需要關注歸檔的產生量,及時啟動備份軟體,避免arch目錄撐爆。
alter table tab1 nologging;
insert /*+ append */ into tab1 select * from tab2;
commit; alter table tab1 logging;
該方法會使得產生arch大大減少,並且在一定程度上提高時間,根據經驗,千萬級的數據可在45分鍾內完成。但是請注意,該方法適合單進程的串列方式,如果當有多個進程同時運行時,後發起的進程會有enqueue的等待。注意此方法千萬不能dataguard上用,不過要是在database已經force logging那也是沒有問題的。
insert into tab1 select /*+ parallel */ * from tab2; commit;
對於select之後的語句是全表掃描的情況,我們可以加parallel的hint來提高其並發,這里需要注意的是最大並發度受到初始化參數parallel_max_servers的限制,並發的進程可以通過v$px_session查看,或者ps -ef |grep ora_p查看。
alter session enable parallel dml;
insert /*+ parallel */ into tab1 select * from tab2; commit;
J. Oracle資料庫Sql中insert語句的操作問題。
你這個insert all語法不對,少了values關鍵字,後面還有個sql可以查出數據,insert all 不會創建表,因此涉及到的表是事先建好的
insert first 的的後面跟了很多的when語句,first意思是先從sql結果里拿出第一條,來與多個when比較,只要找到符合條件的這一條,下面的when都不會去執行,直接中止了when,再從sql結果中拿第二條,重新從第一個when開始判斷,找到第一個符合的就中止下面的when
insert all是把sql所有結果行與所有when進行判斷,只要符合的都執行
insert all (or first)用法很靈活,給你其中一個例子
INSERT ALL
INTO Sales_info VALUES (employee_id,week_id,sales_MON)
INTO Sales_info VALUES (employee_id,week_id,sales_TUE)
INTO Sales_info VALUES (employee_id,week_id,sales_WED)
INTO Sales_info VALUES (employee_id,week_id,sales_THUR)
INTO Sales_info VALUES (employee_id,week_id, sales_FRI)
SELECT EMPLOYEE_ID, week_id, sales_MON, sales_TUE,
sales_WED, sales_THUR,sales_FRI
FROM Sales_source_data;
這個例子是從Sales_source_data表裡查詢出數據插入到Sales_info,簡單說來說是進行了行、列轉換
Sales_source_data可能有(EMPLOYEE_ID, week_id, sales_MON, sales_TUE,
sales_WED, sales_THUR,sales_FRI)用來在一行里顯示某人在某一周的五天里的sales
Sales_info只有3個欄位(employee_id,week_id,sales),用來在至少5行里顯示某人在某一周里的sales