當前位置:首頁 » 編程語言 » oraclesql關鍵字

oraclesql關鍵字

發布時間: 2023-08-21 04:19:11

1. sql語句中有Oracle的關鍵字怎麼辦

資料庫中好象SQL> create table person(a number);
表已創建。
已用時間: 00: 00: 00.00
SQL> select * from person;
未選定行
已用時間: 00: 00: 00.00
SQL> insert into person values(1);
已創建 1 行。
已用時間: 00: 00: 00.00
SQL> commit;
提交完成。

2. Oracle使用merge into 編寫存儲過程 遇編譯錯誤:PL/SQL: ORA-00926: 缺失 VALUES 關鍵字

Oracle使用merge into 編寫存儲過程 遇編譯錯誤,是設置錯誤造成的,解決方法如下:

1、首先新建存儲過程,Create or ReplaceProcere CHK_SYS_EMP 檢查系統工號。

3. 我想知道oracle資料庫的所有的關鍵字

一般保留關鍵字不能用做對象名
ACCESS ADD ALL ALTER AND ANY AS ASC AUDIT BETWEEN BY CHAR CHECK CLUSTER COLUMN COMMENT COMPRESS CONNECT CREATE CURRENT DATE DECIMAL DEFAULT DELETE DESC DISTINCT DROP ELSE EXCLUSIVE EXISTS FILE FLOAT FOR FROM GRANT GROUP HAVING IDENTIFIED IMMEDIATE IN INCREMENT INDEX INITIAL INSERT INTEGER INTERSECT INTO IS LEVEL LIKE LOCK LONG MAXEXTENTS MINUS MLSLABEL MODE MODIFY NOAUDIT NOCOMPRESS NOT NOWAIT NULL NUMBER OF OFFLINE ON ONLINE OPTION OR ORDER P CTFREE PRIOR PRIVILEGES PUBLIC RAW RENAME RESOURCE REVOKE ROW ROWID ROWNUM ROWS SELECT SESSION SET SHARE SIZE SMALLINT START SUCCESSFUL SYNONYM SYSDATE TABLE THEN TO TRIGGER UID UNION UNIQUE UPDATE USER VALIDATE VALUES VARCHAR VARCHAR2 VIEW WHENEVER WHERE WITH
詳細信息可以查看v$reserved_words視圖

4. 數據批量sql*load導入Oracle資料庫

SQL*LOADER是大型數據

倉庫選擇使用的載入方法 因為它提供了最快速的途徑(DIRECT PARALLEL) 現在 我們拋開其理論不談 用實例來使

您快速掌握SQL*LOADER的使用方法

首先 我們認識一下SQL*LOADER

在NT下 SQL*LOADER的命令為SQLLDR 在UNIX下一般為sqlldr/sqlload

如執行 d:oracle>sqlldr

SQL*Loader: Release Proction on 星期二 月 : :

(c) Copyright Oracle Corporation All rights reserved

用法: SQLLOAD 關鍵字 = 值 [ keyword=value ]

有效的關鍵字:

userid ORACLE username/password

control Control file name

log Log file name

bad Bad file name

data Data file name

discard Discard file name

discardmax Number of discards to allow (全部默認)

skip Number of logical records to skip (默認 )

load Number of logical records to load (全部默認)

errors Number of errors to allow (默認 )

rows Number of rows in conventional path bind array or beeen direct p

ath data saves

(默認: 常規路徑 所有直接路徑)

bindsize Size of conventional path bind array in bytes(默認 )

silent Supdivss messages ring run (header feedback errors discards part

扮伏itions)

鬧坦direct use direct path液缺桐 (默認FALSE)

parfile parameter file: name of file that contains parameter specification

s

parallel do parallel load (默認FALSE)

file File to allocate extents from

skip_unusable_indexes disallow/allow unusable indexes or index partitions(默認FALSE)

skip_index_maintenance do not maintain indexes mark affected indexes as unusable(默認FALSE)

mit_discontinued mit loaded rows when load is discontinued(默認FALSE)

readsize Size of Read buffer (默認 )

PLEASE NOTE: 命令行參數可以由位置或關鍵字指定

前者的例子是 sqlload scott/tiger foo ;

後者的例子是 sqlload control=foo userid=scott/tiger

位置指定參數的時間必須早於但不可遲於由關鍵字指定的參數 例如

SQLLOAD SCott/tiger control=foo logfile=log

但 不允許 sqlload scott/tiger control=foo log

即使允許參數 log 的位置正確

d:oracle>

我們可以從中看到一些基本的幫助信息 這里 我用到的是中文的WIN ADVSERVER

我們知道 SQL*LOADER只能導入純文本 所以我們現在開始以實例來講解其用法

一 已存在數據源result csv 欲倒入ORACLE中FANCY用戶下

result csv內容

默認 Web 站點 : : RUNNING

other : : STOPPED

third : : RUNNING

從中 我們看出 列 分別以逗號分隔 為變長字元串

二 制定控制文件result ctl

result ctl內容

load data

infile result csv

into table resultxt

(resultid char terminated by

website char terminated by

ipport char terminated by

status char terminated by whitespace)

說明

infile指數據源文件這里我們省略了默認的discardfile result dsc badfile result bad

into table resultxt 默認是INSERT 也可以into table resultxt APPEND為追加方式 或REPLACE

terminated by 指用逗號分隔

terminated by whitespace結尾以空白分隔

三 此時我們執行載入

D:>sqlldr userid=fancy/testpass control=result ctl log=resulthis out

SQL*Loader: Release Proction on 星期二 月 : :

(c) Copyright Oracle Corporation All rights reserved

SQL*Loader : 在描述表RESULTXT時出現錯誤

ORA : 對象 RESULTXT 不存在

提示出錯 因為資料庫沒有對應的表

四 在資料庫建立表

create table resultxt

(resultid varchar ( )

website varchar ( )

ipport varchar ( )

status varchar ( ))

/

五 重新執行載入

D:>sqlldr userid=fancy/k i l l control=result ctl log=resulthis out

SQL*Loader: Release Proction on 星期二 月 : :

(c) Copyright Oracle Corporation All rights reserved

達到提交點 邏輯記錄計數

達到提交點 邏輯記錄計數

已經成功!我們可以通過日誌文件來分析其過程 resulthis out內容如下

SQL*Loader: Release Proction on 星期二 月 : :

(c) Copyright Oracle Corporation All rights reserved

控制文件: result ctl

數據文件: result csv

錯誤文件: result bad

廢棄文件: 未作指定

:

(可廢棄所有記錄)

裝載數: ALL

跳過數:

允許的錯誤:

綁定數組: 行 最大 位元組

繼續: 未作指定

所用路徑: 常規

表RESULTXT

已載入從每個邏輯記錄

插入選項對此表INSERT生效

列名 位置 長度 中止 包裝數據類型

RESULTID FIRST * CHARACTER

WEBSITE NEXT * CHARACTER

IPPORT NEXT * CHARACTER

STATUS NEXT * WHT CHARACTER

表RESULTXT:

行載入成功

由於數據錯誤 行沒有載入

由於所有 WHEN 子句失敗 行沒有載入

由於所有欄位都為空的 行沒有載入

為結合數組分配的空間: 位元組( 行)

除綁定數組外的內存空間分配: 位元組

跳過的邏輯記錄總數:

讀取的邏輯記錄總數:

拒絕的邏輯記錄總數:

廢棄的邏輯記錄總數:

從星期二 月 : : 開始運行

在星期二 月 : : 處運行結束

經過時間為: : :

CPU 時間為: : : (可

六 並發操作

sqlldr userid=/ control=result ctl direct=true parallel=true

sqlldr userid=/ control=result ctl direct=true parallel=true

sqlldr userid=/ control=result ctl direct=true parallel=true

當載入大量數據時(大約超過 GB) 最好抑制日誌的產生

SQL>ALTER TABLE RESULTXT nologging;

這樣不產生REDOLOG 可以提高效率 然後在CONTROL文件中load data上面加一行 unrecoverable

此選項必須要與DIRECT共同應用

在並發操作時 ORACLE聲稱可以達到每小時處理 GB數據的能力!其實 估計能到 - G就算不錯了 開始可用結構

相同的文件 但只有少量數據 成功後開始載入大量數據 這樣可以避免時間的浪費

我的示例

一 在資料庫建立表格weather如下

create table weather(

outlook varchar( )

temperature float

humidity float

windy varchar( )

play varchar( )

)

二 在F盤建立兩個文件 分別如下

# result ctl內容如下

load data

infile result csv

into table weather

(outlook char terminated by

temperature char terminated by

humidity char terminated by

windy char terminated by

play char terminated by

)

# result csv內容如下

sunny FALSE no

sunny TRUE no

overcast FALSE yes

rainy FALSE yes

rainy FALSE yes

rainy TRUE no

overcast TRUE yes

sunny FALSE no

sunny FALSE yes

rainy FALSE yes

sunny TRUE yes

overcast TRUE yes

overcast FALSE yes

rainy TRUE no

三 命令行下執行

F:>sqlldr userid=cq *** /ctbujx control=result ctl

lishixin/Article/program/Oracle/201311/18602

5. Oracle資料庫的子查詢關鍵字該怎麼使用

一、
偽列就像Oracle中的一個表列,但實際上它並未存儲在表中。偽列可以從表中查詢,但是不能插入、更新或刪除它們的值。常用的偽列:rowid和rownum。
Rowid:資料庫中的每一行都有一個行地址,Rowid偽列返回該行地址。可以使用Rowid值來定位表中的一行。通察粗常情況下,Rowid值可以唯一地標識資料庫中的一行。
Rowid偽列有以下重要用途:
1)能以最快的方式訪問表中的一行;
2)能肢宴顯示表的行是如何存儲的。
3)可以作為表中行的唯一標識。
如:SQL> select rowid,ename from emp;
Rownum:對於一個查詢返回的每一行,Rownum偽列返回一個數值代表的次序。返回的第一行的Rownum值為1,第二行的Rownum值為2,依此類敗飢鎮推。通過使用Rownum偽列,用戶可以限制查詢返回的行數。
如:SQL>select * from emp where rownum<11; 從EMP表中提取10條記錄
二、
oracle中不支持select top n from tablename 查詢,但是通過 order by 和 rownum 組合可以實現此功能。例如:SELECT列名1...列名nFROM
(SELECT列名1...列名nFROM 表名 ORDER BY 列名1...列名n)
WHERE ROWNUM <= N(抽出記錄數)
ORDER BY ROWNUM ASC

熱點內容
ubuntujava環境變數 發布:2025-02-05 07:57:13 瀏覽:442
sql語句on 發布:2025-02-05 07:41:42 瀏覽:597
取消電腦密碼怎麼設置8 發布:2025-02-05 07:24:16 瀏覽:393
洗腦編程 發布:2025-02-05 07:23:52 瀏覽:948
osd加密 發布:2025-02-05 07:17:39 瀏覽:36
微信游戲源碼下載 發布:2025-02-05 07:17:29 瀏覽:384
計算機內存儲器是 發布:2025-02-05 07:13:35 瀏覽:144
classpathlinux 發布:2025-02-05 07:12:57 瀏覽:564
linuxftp連接失敗 發布:2025-02-05 07:01:40 瀏覽:705
學生信息管理系統java 發布:2025-02-05 06:58:45 瀏覽:576