說明: 1)該實驗所有過程均是本人親自敲命令完成,所有代碼運行正確 2)安裝過程使用的是suse11 sp3操作系統,後續的實驗過程換成了麒麟中標,因此部分路徑可能存在差異 3)安裝過程使用了命令行安裝,圖形界面簡單,因此本文沒有介紹 4)job部分命令行操作太繁瑣,建議使用圖形界面操作,因此本文也 ...
說明:
1)該實驗所有過程均是本人親自敲命令完成,所有代碼運行正確
2)安裝過程使用的是suse11 sp3操作系統,後續的實驗過程換成了麒麟中標,因此部分路徑可能存在差異
3)安裝過程使用了命令行安裝,圖形界面簡單,因此本文沒有介紹
4)job部分命令行操作太繁瑣,建議使用圖形界面操作,因此本文也跳過了此內容
正文
1. 安裝
1.1 創建安裝用戶組
#groupadd dinstall
1.2 創建安裝用戶
#useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
#useradd -g dinstall dmdba
1.3 初始化用戶密碼
#passwd dmdba
1.4 修改系統限制
#vi /etc/security/limits.conf
dmdba soft nofile 4096
dmdba hard nofile 65536
1.5 掛載鏡像文件
#mkdir /dmdb
#mount -t iso9660 -o loop /root/dm7_setup_rh6_64_ent_7.6.0.197_20190917.iso /dmdb
1.6 更改許可權
#chown dmdba.dinstall -R /dmdb
#chmod 755 -R /dmdb
1.7 修改環境變數
#su - dmdba
#vi .bashrc
export DM_HOME=/home/dmdba/dmdbms
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH
1.8 採用命令行模式安裝
#su - dmdba
#cd /dmdb
#./DMInstall.bin -i
1)Please select the installer's language (E/e:English C/c:Chinese) [E/e]:e
2)Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:n
3)Whether to Set The TimeZone? (Y/y:Yes N/n:No) [Y/y]:y
4)Please Select the TimeZone [21]:21
5)Installation Type:
1 Typical
2 Server
3 Client
4 Custom
Please Input the number of the Installation Type [1 Typical]:1
6)Please Input the install path [/home/dmdba/dmdbms]:
7)Please Confirm the install path(/home/dmdba/dmdbms)? (Y/y:Yes N/n:No) [Y/y]:y
8)Confirm to Install? (Y/y:Yes N/n:No):y
9)Please execute the commands by root:
/home/dmdba/dmdbms/script/root/root_installer.sh
1.9 初始化數據
#/home/dmdba/dmdbms/bin
#./dminit
input system dir: /home/dmdba/dmdbms
input db name: dmdb01
input port num: 5236
input page size(4, 8, 16, 32): 8
input extent size(16, 32): 16
input sec priv mode(0, 1): 0
input time zone(-12:59,+14:00): +08:00
string case sensitive? ([Y]es, [N]o): n
which charset to use? (0[GB18030], 1[UTF-8], 2[EUC-KR]): 1
length in char? ([Y]es, [N]o): y
enable database encrypt? ([Y]es, [N]o): n
page check mode? (0/1/2): 0
input elog path: /home/dmdba/dmdbms/log
auto_overwrite mode? (0/1/2): 2
1.10 啟動資料庫服務
#cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p dmdb01 -i /home/dmdba/dmdbms/dmdb01/dm.ini
提示信息:
Move the service script file(/home/dmdba/dmdbms/bin/DmServicedmdb01 to /etc/init.d/DmServicedmdb01)
insserv: warning: current stop runlevel(s) (empty) of script `DmServicedmdb01' overwrites defaults (2 3 4 5).
insserv: Service network is missed in the runlevels 4 to use service mysql
DmServicedmdb01 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Finished to create the service (DmServicedmdb01)
#service DmServicedmdb01 start
1.11 連接驗證(預設密碼)
#/home/dmdba/dmdbms/bin/disql
username:sysdba
password:SYSDBA
2.通過vnc調出管理工具
#xhost +
#su - dmdba
#export DISPLAY=127.0.0.1:1.0
#/home/dmdba/dmdbms/tool/manager
3.修改參數(v$parameter)
3.1 參數類型
0 Sys/session 動態參數,同時修改記憶體和配置文件
1 Read only 在資料庫運行狀態時,不能修改。
2 In file 靜態參數,修改後,重啟服務生效。
示例:
SQL> Select para_name,para_value from v$dm_ini where para_name='BUFFER_POOLS';
LINEID para_name para_value
---------- ------------ ----------
1 BUFFER_POOLS 3
3.2 命令
SP_PARA_SET_VALUE(SCOPE,PARA_NAME,PARA_VALUE);
SCOPE值:
1: 修改配置文件和記憶體
2:只修改配置文件
示例:
SQL> SP_SET_PARA_VALUE(2,’BUFFER’,1000);
4.重做日誌
4.1 視圖
v$rlogfile
v$rlog
SQL> select * from v$rlogfile;
說明:這裡查出來的rlog_size大小單位是bit,因此再下麵添加日誌大小的時候需要除以兩次1024轉成M
4.2 添加日誌文件
SQL> alter database add logfile '/home/dmdba/dmdbms/dmdb01/dmdb0103.log' size 256;
說明:預設單位是M,不需要加單位。並且需要和原來的日誌文件大小一致
4.3 修改日誌文件大小
SQL> alter database resize logfile '/home/dmdba/dmdbms/dmdb01/dmdb0103.log' to 300;
說明:所有的日誌文件要大小一致
5.表空間
5.1視圖
dba_tablespaces
v$tablespace
v$huge_tablespace
5.2 表空間說明
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces;
System表空間: 數據字典和全局的系統數據。
ROLL表空間:存放了資料庫運行過程中產生的回滾記錄。
TEMP表空間:臨時表空間。
MAIN表空間:資料庫預設的表空間,創建數據對象時,如果不指定存儲位置,預設存放到該表空間。
HMAIN表空間:huge 表空間
5.3 查詢所有表空間信息
SQL> Select name from v$tablespace union select name from v$huge_tablespace;
5.4 創建表空間
表空間初始文件大小是頁大小的4096倍
示例1:表空間初始大小50M,每次擴展1M,最大100M
SQL> create tablespace tbs1 datafile '/dm7/data/dm01/tbs01.dbf' size 50 autoextend on next 1 maxsize 100;
示例2:表空間初始50M,表空間由2個數據文件組成,分別存儲到不同的磁碟上,每次擴展1m,每個數據文件最大100M.
SQL> create tablespace tbs2 datafile '/dm7/data/dm01/tbs02_1.dbf' size 50 autoextend on next 1 maxsize 100,'/dm7/data/tbs02_2.dbf' size 50 autoextend on next 1 maxsize 100;
5.5 維護表空間
最常用的方式就是增加數據文件
SQL> alter tablespace tbs2 add datafile '/dm7/data/dm01/tbs02_3.dbf' size 50 autoextend on next 1 maxsize 100;
5.6 更換文件存儲位置
註意:SYSTEM,ROLL, TEMP 不能offline;
SQL> alter tablespace tbs2 offline;
SQL> alter tablespace tbs2 rename datafile '/dm7/data/tbs02_2.dbf' to '/dm7/data/dm01/tbs02_2.dbf';
SQL> alter tablespace tbs2 online;
5.7 刪除表空間
SQL> drop tablespace tbs2;
如果表空間存有數據,不允許直接刪除!
6.用戶管理
6.1 視圖
dba_users
6.2 內置用戶
sys --- 達夢資料庫的內置管理用戶,不能登錄資料庫,資料庫使用的大部分的數據字典和動態性能視圖
Sysdba --- 資料庫的管理員
Sysauditor --- 審計用戶
Syssso --- 安全用戶
sysdbo --- 數據操作員(安全版有,四權分立)
6.3 命名規則
字母開頭,a-z,0-9,$#_
6.4 口令策略
用戶密碼最長為48個位元組,創建用戶語句使用 password policy 子句來指定口令策略(DM.INI PWD_POLICY).
系統支持的口令策略:
0 無策略
1 禁止與用戶名相同
2 口令長度不小於9
4 至少包含一個大寫字母(A-Z)
8 至少包含一個數字(0-9)
16 至少包含一個標點符號(英文狀態輸入,除”和空格外)
口令可以單獨使用,也可以組合使用,比如需要應策略1和2,則設置口令策略為:3
密碼嘗試登錄次數 FAILED_LOGIN_ATTEMPS
密碼失敗鎖定時間 PASSWORD_LOCK_TIME
密碼過期時間 PASSWORD_LIFE_TIME
6.5 用戶許可權
系統許可權: create drop alter 能夠對資料庫做什麼操作。
對象許可權(表,視圖,過程等等): select delete update insert
角色: dba、public等
6.6 查看用戶許可權:
SQL> select grantee,granted_role from dba_role_privs where grantee='USER1';
行號 GRANTEE GRANTED_ROLE
---------- ------- ------------
1 USER1 PUBLIC
6.7 查看角色擁有的許可權
SQL> select grantee,privilege from dba_sys_privs where grantee='PUBLIC';
行號 GRANTEE PRIVILEGE
---------- ------- ----------------
1 PUBLIC INSERT TABLE
2 PUBLIC UPDATE TABLE
3 PUBLIC DELETE TABLE
4 PUBLIC SELECT TABLE
5 PUBLIC REFERENCES TABLE
6 PUBLIC GRANT TABLE
.....
6.8 示例
示例1:為資料庫設置一個用戶,該用戶可以創建自己的表,有屬於自己的獨立表空間,用戶密碼要求每60天變更一次。
SQL> create tablespace tbs3 datafile '/dm7/data/dm01/tbs03.dbf' size 32;
SQL> create user user1 identified by user1user1 limit password_life_time 60 default tablespace tbs3;
示例2:創建一個用戶,該用戶每60天變更一次密碼,密碼嘗試連接2次失敗,賬戶鎖定5分鐘,用戶還可以查詢dmhr.employee表
SQL> create user user2 identified by user2user2 limit password_life_time 60, FAILED_LOGIN_ATTEMPS 2 ,PASSWORD_LOCK_TIME 5 default tablespace tbs3;
SQL> grant select on dmhr.employee to user2;
示例3:企業招聘一批錄入人員,許可權是固定的,只有錄入CITY表的許可權
角色:一類許可權的集合
SQL> create role role1;
SQL> grant insert on dmhr.city to role1;
SQL> grant references any table to role1;
SQL> grant role1 to user2;
6.9 用戶維護
1)撤銷許可權
SQL> revoke select on dmhr.employee from user2;
2)解鎖用戶
SQL> alter user user2 account unlock;
3)修改密碼
SQL> alter user user2 identified by user3user3;
4)刪除用戶
SQL> drop user user2;
5)刪除用戶(級聯刪除)
SQL> drop user user2 cascade;
7.dmsql
說明:由於SQL查詢內容比較複雜,並且作為數據管理型DBA SQL開發也不是重點,所以這裡只總結了大概內容。
7.1 常識
dmsql主要基於sql92,部分sql99
SQL:結構化查詢語言
DDL: 定義 create drop alter truncate
DML: 管理 select update delete insert
DCL:控制 grant revoke
TCL:事務控制:commit rollback
7.2 select
簡單查詢:select () from ();
過濾查詢:select () from () where ();
多錶鏈接:select() from () join() on();
分組查詢:select 聚合函數() from () group by () having ();
子查詢:
7.3 insert into
7.4 delete
7.5 update
8.表的管理
8.1 達夢資料庫支持的表
索引組織表(預設的表)、堆表、臨時表、分區表、外部表等。
8.2 創建表時包含的內容
命名:字母開頭 a-z,0-9,$#_
數據類型:int char varchar date clob blob number等等。
存儲位置:自已的規劃的表空間。
約束(5大約束): 非空約束,唯一約束,主鍵,檢查,外鍵
註釋:comment
遵循3範式
8.3 示例
1)要求
表名:STU
學號(id char(10)),
姓名(sname varchar(20) not null),
性別 (sex char(1))
年齡(age int)
電話(tel varchar(15) not null)
家庭住址:(address varchar(50))
表空間:TBS2
約束:主鍵列---學號 非空---姓名,電話
備註:學員信息表
2)SQL語句
create table USER2.STU
(
ID CHAR(10) not null ,
SNAME VARCHAR(20) not null ,
SEX CHAR(1),
AGE INT,
TEL VARCHAR(15) not null ,
ADDRESS VARCHAR(50),
primary key(ID)
) storage (on TBS2);
comment on table USER2.STU is '學員信息表';
comment on column USER2.STU.ID is '學號';
comment on column USER2.STU.SNAME is '姓名';
comment on column USER2.STU.SEX is '性別';
comment on column USER2.STU.AGE is '年齡';
comment on column USER2.STU.TEL is '電話';
comment on column USER2.STU.ADDRESS is '家庭住址';
8.4 查看表結構
註意:用戶名、表名都要大寫
SQL> sp_tabledef('USER2','STU');
行號 COLUMN_VALUE
---------- -------------------------------------------------------------------
1 CREATE TABLE "USER2"."STU" (
"ID" CHAR(10) NOT NULL,
"SNAME" VARCHAR(20) NOT NULL,
"SEX" CHAR(1), "AGE" INT,
"TEL" VARCHAR(15) NOT NULL,
"ADDRESS" VARCHAR(50),
CLUSTER PRIMARY KEY("ID"))
STORAGE(ON "TBS2", CLUSTERBTR) ;
或者:
SQL> select dbms_metadata.get_ddl('TABLE','STU','USER2');
8.5 查看表所屬表空間
SQL> select table_name,tablespace_name from dba_tables where table_name='STU';
行號 TABLE_NAME TABLESPACE_NAME
---------- ---------- ---------------
1 STU TBS2
8.6 查看表有哪些約束
SQL> select table_name,constraint_name,constraint_type from dba_constraints where table_name='STU';
行號 TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE
---------- ---------- --------------- ---------------
1 STU CONS134218774 P
8.7 創建表時指定約束
1)非空約束
SQL> create table user2.t1(id int);
SQL> alter table user2.t1 modify id int not null;
或者:
SQL> create table user2.t2(id int not null);
2)唯一約束
SQL> create table user2.t3(id int unique);
3)主鍵約束
SQL> create table user2.t4(id int primary key);
4)檢查約束
SQL> create table user2.t5(id int check(id>=5));
5)外鍵約束
SQL> create table user2.t6(id int primary key ,sid int foreign key references user2.t4(id));
說明:作為外鍵約束的列必須是另外一個表的主鍵
8.8 表的註釋
SQL> comment on column user2.t1.id is '編號';
8.9 導入數據到表中
1)編寫a.sql腳本:
insert into user2.t1(id) values(1);
insert into user2.t1(id) values(2);
insert into user2.t1(id) values(3);
insert into user2.t1(id) values(4);
commit;
2)然後:
SQL> start /tmp/a.sql
3)也可以用圖形界面的DTS工具去做。
8.10 維護表
1)重命名
SQL> alter table user2.t6 rename to tt6;
2)增加刪除列
SQL> alter table user2.tt6 add name varchar(10);
SQL> alter table user2.tt6 drop name;
3)啟用禁用約束
SQL> select table_name,constraint_name,constraint_type from dba_constraints where table_name='T4';
行號 TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE
---------- ---------- --------------- ---------------
1 T4 CONS134218776 P
SQL> alter table user2.t4 disable constraint CONS134218776;
SQL> alter table user2.t4 enable constraint CONS134218776;
9.視圖管理
9.1 視圖分類
簡單視圖,複雜視圖,物化視圖
註:簡單視圖和複雜視圖不占磁碟空間
物化視圖占磁碟空間
9.2 創建視圖
create view () as select () from () where ();
SQL> create view v1 as select * from user2.t1;
SQL> select * from v1;
行號 ID
---------- -----------
1 1
2 2
3 3
4 4
9.3 查看視圖
SQL> select view_name,text from dba_views where view_name='V1';
行號 VIEW_NAME TEXT
---------- --------- ---------------------------------
1 V1 SELECT USER2.T1.ID FROM USER2.T1
9.4 修改視圖
SQL> create or replace view v1 as select * from user2.t2;
SQL> select * from v1;
未選定行
10.序列管理
10.1 創建序列
SQL> create sequence user2.s1
start with 1 ----序號起始
increment by 1 --自增多少
maxvalue 50 ---最大值
nocache ---是否緩存
nocycle; ---是否迴圈
10.2 序列的應用
SQL> insert into user2.t1 values(user2.s1.nextval);
SQL> insert into user2.t1 values(user2.s1.nextval);
向表中插入兩條記錄。
SQL> select * from user2.t1;
行號 ID
---------- -----------
1 1
2 2
3 3
4 4
5 1
6 2
6 rows got
11.同義詞管理
11.1 創建同義詞
公共:SQL> create public synonym ss1 for dmhr.employee;
普通:SQL> create synonym ss2 for dmhr.employee;
SQL> select count(*) from ss1;
行號 COUNT(*)
---------- --------------------
1 856
11.2 修改同義詞
SQL> create or replace synonym ss2 for dmhr.city;
11.3 刪除同義詞
SQL> drop synonym ss2;
SQL> drop public synonym ss1;
12.索引管理
12.1 達夢支持的索引
二級索引、點陣圖索引、唯一索引、複合索引、函數索引、分區索引等。
預設的表是索引組織表,是利用rowid創建一個預設的索引,所以創建的索引稱為二級索引。
12.2 查看表的索引
SQL> select table_name,index_name from dba_indexes where table_name='T1';
行號 TABLE_NAME INDEX_NAME
---------- ---------- -------------
1 T1 INDEX33555470
12.3 索引的作用
加快表的查詢,對資料庫做DML操作的時候,資料庫會自動維護索引。索引是一棵倒置的樹,使用索引,就是對這棵索引樹做遍歷。
12.4 建立索引的規則
1)適合建立索引的情況
經常查詢的列
接條件列
謂詞經常出現的列(where)
查詢是返回表的一小部分數據
2)不適合做索引的情況:
列上有大量的null
列上的數據有限(例如性別)
12.5 創建索引
規劃索引表空間
表的數據是無序的,索引的數據是有序的
示例:在Emp中的employee_id 建立索引。
1)建立表
SQL> create table user2.emp as select * from dmhr.employee;
2)建立索引表空間
SQL> create tablespace tbs_idx1 datafile '/dm7/data/dm01/tbs_idx101.dbf' size 32;
3)建立索引:
SQL> create index ind_emp on user2.emp(employee_id) tablespace tbs_idx1;
4)查詢索引:
SQL> select table_name,index_name from dba_indexes where table_name='EMP';
行號 TABLE_NAME INDEX_NAME
---------- ---------- -------------
1 EMP INDEX33555479
2 EMP IND_EMP
12.6 重建索引
SQL> alter index user2.IND_EMP rebuild;
13.備份還原
13.1 備份分類
物理備份、邏輯備份
13.2 物理備份
1)工具簡介
冷備:(dmap服務打開的狀態下,資料庫是關閉的)
熱備:(dmap服務一定是打開的,資料庫也是打開的,資料庫要開歸檔)
導入導出:dexp dimp
集群:數據守護(dw),dsc(rac)
達夢支持第三方的備份軟體:愛數,鼎甲
2)物理備份過程(冷備)
第一步:創建歸檔日誌存放路徑
#mkdir /dm7/data/dm01/arch
第二步:開歸檔
SQL> alter database mount;
SQL> alter database add archivelog 'type=local,dest=/dm7/data/dm01/arch,file_size=64,space_limit=0';
SQL> alter database archivelog;
SQL> alter database open;
SQL> select ARCH_MODE,STATUS$ from v$database;
行號 ARCH_MODE STATUS$
---------- --------- -----------
1 Y 4
第三步:停止資料庫服務
[dmdba@localhost dm01]$ service DmServicedm01 stop
第四步:使用dmrman備份
說明:dmrman 命令必須在命令所在的bin目錄下執行才行
[dmdba@localhost bin]$ pwd
/dm7/bin
[dmdba@localhost bin]$ ./dmrman
RMAN> backup database '/dm7/data/dm01/dm.ini';
根據提示信息找到備份文件位置
3) 使用命令行備份(熱備)
使用命令行備份,同樣需要開歸檔,但是不需要停資料庫服務
#mkdir /dm7/data/backup
SQL> backup database full backupset '/dm7/data/backup/full_bak';
增量備份
SQL> insert into user2.t1 values(user2.s1.nextval);
SQL> select checkpoint(1);
SQL> backup database increment backupset '/dm7/data/backup/incr_bak';
13.3 還原數據
1)選擇實驗用戶和實驗表空間
SQL> select username,default_tablespace from dba_users where username='USER2';
行號 USERNAME DEFAULT_TABLESPACE
---------- -------- ------------------
1 USER2 TBS3
2)模擬表空間文件損壞
#mv tbs03.dbf tbs03.dbf.bak
3)重啟服務
#service DmServicedm01 stop
#service DmServicedm01 start
4)手動打開資料庫
SQL> alter database open;
5)查看表空間狀態
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces where tablespace_name='TBS3';
行號 TABLESPACE_NAME STATUS
---------- --------------- -----------
1 TBS3 1
6)恢複數據
SQL> restore tablespace tbs3 from backupset '/dm7/data/backup/full_bak';
7)online表空間
SQL> alter tablespace tbs3 online;
8)查看表空間狀態
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces where tablespace_name='TBS3';
行號 TABLESPACE_NAME STATUS
---------- --------------- -----------
1 TBS3 0
9)查詢數據
SQL> select * from user2.t1;
行號 ID
---------- -----------
1 1
2 2
3 3
4 4
5 1
6 2
7 3
8 4
8 rows got
13.4 邏輯導入導出
1)工具簡介
Dexp 邏輯導出 dimp 邏輯導入
Dexp和dimp是DM自帶的工具,分為四種級別:
資料庫級,用戶級、模式級和表級。四種級別獨立互斥,不能同時存在。四種級別所提供的功能:
資料庫級(full):導出或導入整個資料庫中的訪問對象。
用戶級(owner):導出或導入一個或多個用戶所擁有的所有對象。
模式級(schemas):導出或導入一個或多個模式下的所有對象。
表級(table):導出或導入一個或多個指定的表或表分區。
2)實驗過程
第一步:備份user2下的數據
[dmdba@localhost bin]$ pwd
/dm7/bin
[dmdba@localhost bin]$./dexp sysdba/SYSDBA file=/dm7/data/backup/user2.dmp log=/dm7/data/backup/user2.log owner=user2
第二步:恢複數據到user1下
[dmdba@localhost bin]$ pwd
/dm7/bin
[dmdba@localhost bin]$./dimp sysdba/SYSDBA file=/dm7/data/backup/user2.dmp log=/dm7/data/backup/user1.log fromuser=user2 touser=user1
第三步:數據確認(兩次SQL語句是導入數據前後的對比)
SQL> select * from user1.t1;
select * from user1.t1;
[-2106]:Error in line: 1
Invalid table or view name [t1].
used time: 1.538(ms). Execute id is 0.
SQL> select * from user1.t1;
LINEID id
---------- -----------
1 1
2 2
3 3
4 4
5 1
6 2
6 rows got
14.達夢SQL開發
14.1 配置ODBC(linux下)
1)安裝(root用戶)
#tar -xvf unixODBC-2.3.0.tar.gz
#cd unixODBC-2.3.0
# ./configure --enable-gui=no
#make
#make install
# odbc_config --version
2.3.0
#odbc_config --odbcini
/usr/local/etc/odbc.ini
#odbcinst -j
unixODBC 2.3.0
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
2)修改配置文件
#cd /usr/local/etc
#vi odbc.ini
[dm7]
Desription=DM ODBC DSND
Driver = DM7 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = Abcd.1234
TCP_PORT = 5236
#vi odbcinst.ini
[DM7 ODBC DRIVER]
Description = ODBC DRIVER FOR DM7
Driver = /dm7/bin/libdodbc.so
3)修改文件許可權
#chmod 775 odbc.ini
#chmod 775 odbcinst.ini
4)測試
#su - dmdba
#isql dm7
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
14.2 存儲過程
1)匿名塊
SQL> set serveroutput on
SQL> begin
print('hello world');
end;
/
2)命名塊(存儲過程)
SQL> CREATE OR REPLACE PROCEDURE USER2.P1
AS
BEGIN
SELECT * from USER2.T1;
END;
/
SQL> call user2.p1;
LINEID id
---------- -----------
1 1
2 2
3 3
4 4
5 1
6 2
6 rows got