10g以降で使えます。webベースなのでutf-8 (unicode) に対応しています。 http://hostname:5560/isqlplus/ 当然サーバー側でサービスが動いていて、5560ポートがファイアウォールで閉じられていない必要があります。 |
リコンパイルは次のSQLで実行可能です。 ALTER VIEW view_name COMPILE; ALTER FUNCTION function_name COMPILE; ALTER PROCEDURE procedure_name COMPILE; ALTER PACKAGE package_name COMPILE; |
convert文とdump文で各国語のコードを取得可能 (Oracle9i以降)。下記はutf8インスタンスからの取得例。 select dump(convert(item,'WE8ISO8859P1','utf8'),16) from master_file where id=1; DUMP(CONVERT(item,'WE8ISO8859P1','UTF8'),16) -------------------------------------------------------------------------------- Typ=1 Len=3: fc,e4,eb 指定するキャラクタセットの例 ASCII US7ASCII SJIS JA16SJIS 中国語 ZHS16CGB231280 西欧語 WE8ISO8859P1 ロシア語 CL8ISO8859P5 トルコ語 WE8ISO8859P9 |
select count(*) from v$session where username is not null; |
Oracleの検索で大文字・小文字を意識させたくない時があります。こんな場合はUPPER関数を使います。しかしこの関数を使うと検索のパフォーマンスは当然落ちるので注意が必要です。 select * from aaa where UPPER(bbb) = UPPER('aBc'); |
まず対象ユーザーabcにSelect権限を与えます。 grant select on emp to abc; 次にabc側でViewを作成します。 create view v_emp as select * from scott.emp; |
%ORACLE_HOME%\Ora81\sysman\config\dbappprf.propertiesの最下部に次の2行を追加して下さい。 SQLPLUS_SYSTEMROOT=C:\\WINNT SQLPLUS_NLS_LANG=JAPANESE_JAPAN.JA16SJIS |
次のコマンドで確認できます。 select distinct tablespace_name from user_tables; 又は select distinct tablespace_name from dba_tables; |
コマンドベースでsqlplusを実行するには実行するsql文とバッチファイルを作ります。例えば c:\sql のパスにsql文を置く場合下記のような感じになります。
この時のtestsql.sqlの中身は例えば次のようなものです。
|
Create SQLはexpユーティリティのダンプの中に含まれています。ROWS=Nを指定してデータ自体のダンプを抑制して取得すれば良いでしょう。例えば下記のようです。
expの基本文法は次のような感じです。
|
1.SELECT * FROM emp WHERE hiredate = '98-02-27'; 2.SELECT * FROM emp WHERE hiredate = TO_DATE('98-02-27'); 3.SELECT * FROM emp WHERE TO_CHAR(hiredate) = '98-02-27'; SQL*PLUS 8.1.6以降は上全てで結果が表示される。 SQL*PLUS 8.0.5では、3しか表示されない。 参考 : select * from error where TO_CHAR(T_TIME,'YYYY/MM/DD HH24:MI:SS') = '2001/04/06 13:46:59' |
select * from dbname where rownum <= 10; 因みにに次の10件の表示は次のようになる。 select * from dbname where rownum<= 20 minus select * from dbname <=10; |
作成 コマンド CREATE USER ユーザー名 IDENTIFIED BY パスワード DEFAULT TABLESPACE デフォルト表領域名 TEMPORARY TABLESPACE テンポラリ表領域名 QUOTA サイズ ON 表領域名; 削除 DROP USER ユーザー名 CASCADE ( CASCADE指定すると所有している表等も削除) 確認 SELECT * FROM USER_USERS; |
標準出力
エラー出力
|
テーブル作成 CREATE TABLE テーブル名 (列名 データ型,列名 データ型.......); テーブルの削除 DROP TABLE テーブル名; テーブル名の変更 RENAME old-name TO new-name; テーブルの一覧表示(Oracle?) select * from tab; |
edit コマンドを使う。これを用いるとメモ帳が起動される。最下行にある / は削除してはいけない。保存するとバッファに格納され、 / で呼び出しが可能となる。 |
ロールには CONNECT,RESOURCE,DBAの3種類がデフォルトで用意されている。
ロールの付与の例
ロールの確認の例
|
データベースの枠組み、データベースのデータ定義において、データの型や長さといった属性、データの関連や制約、アクセス権の設定などを行なう必要があり、こうして定義された、言うなればデータベースの枠組みをスキーマと呼ぶ。 |
Decode 関数はインラインif文としてSQL文で使える。 例: SQL> select ename,sal,decode(sign(sal - 1100),0,'EQ',-1,'small',1,'big') from EMP; ENAME SAL DECOD ---------- --------- ----- SMITH 800 small ALLEN 1600 big WARD 1250 big JONES 2975 big MARTIN 1250 big BLAKE 2850 big CLARK 2450 big SCOTT 3000 big KING 5000 big TURNER 1500 big ADAMS 1100 equal JAMES 950 small FORD 3000 big MILLER 1300 big 14行が選択されました。 |
Oracleのプロシジャー言語。基本的に次の形態を持つ。 DECLARE 宣言部は、そのブロックに対してローカルなデータ型、カーソル PL/SQLプロシージャ、関数が定義される。 BEGIN 実行部は、ブロック起動時に実行されるコードが指定される。 EXCEPTION 例外処理部は、処理中に発生した例外に対するコードが指定される。 END; |
Oracle8.04以降Oracle Liteを除き次のように分類されています。 name user 規模 Oracle8 Enterprise Edition 1-->10000 10GB-->100TB Oracle8 WorkGroup Server 1-->100 100MB-->数10GB Oracle8 Personal Edition 1 -->100MB |
フリーRDBと比較したOracleの優位点です。 行レベルロック 排他制御の単位として行レベルロックつまりデータベースの論理的な最小単位で行なっている。 読取り一貫性 読取り中に他者によって更新されても、読取りに影響のある更新以前の内容を読み込める機能がある。 |
リレーショナル・データベースでは、view(ビュー)と呼ばれる仮想的なテーブルが よく使われる。「仮想的」というのは、viewは、データベースの中では普通のテーブル
の様な「実体」を持っておらず、それを作り出す定義のみが、システムに記憶されているだけだからである。それにも関わらず、SQLの中で、viewはほとんどテーブルと区別
なく扱かわれる。例えば、select文のfrom句には、テーブル名とview名との混在が可能 である。 create view emp78 as select * from emp where empno like '78%'; |
ストアドプロシジャとはSQLをプログラム化して予め格納し実行させるものです。 トリガーもストアドプロシジャの一種ですが、データベースの更新時等に一定のルールで更新者に依存しない形で自動的にデータベースを更新する機能です。 どちらもRDBを利用してビジネスロジックを実現する際にはなくてはならないものです。これらは商用RDBには備わっていますが、オープンソース系のRDBには備えられていません。 |
PostgreSQLは、カリフォルニア大学バークレー校で開発されたPostgresを元にしたデータベース。Postgresで使われていたオリジナルのPostQuelという問合わせ言語を、拡張を含むSQL-92のサブセットで置換えたシステム。 |
replication データベースシステムにおいて、データの複製を作ること。複製されたデータに何らかの変更が加えられた場合、その複製をオリジナルのデータと照合して変更された個所を反映させる仕組みを持つ。 |
スナップショットとは、別のデータベースの表の直前のコピーのこと。場合によってはその表のサブセットを示す。スナップショットは応答時間の短縮などを目的として作成され、定期にリフレッシュする定義を指定します。 |
SQLで両者の相異を誤解する人がいます。delete文はデータ行を削除するだけで仮に全行を削除してもテーブル定義は残ります。逆に定義そのものを削除したい時にdrop文を使います。 |
Oracle Pro*C/C++, Pro*COBOLは、埋め込み型のSQLコマンドを、通常の3GLプログラムの中に記述することで、アプリケーションを開発します。 現在のところサポートされている言語は、CおよびCOBOLとなっています。Oracle Pro*C/C++,Pro*COBOLを使えば、従来から存在している手続き型言語と、柔軟性が高く、簡単なSQLコマンドの組み合わせにより、高度のアプリケーション開発に使用することが出来ます。 |
Oracle Objects for OLE は、Oracle標準の本格的ミドルウェア。 Oracle社があげる特徴は下記の通り 開発ツールを選ばないオープン性 全てのSQL文およびPL/SQL文のサポート ストアドプロシージャ・ストアドファンクションのサポート 配列型ホスト変数のサポート クライアントサイドで双方向カーソルのサポート Internet Infomation Server、Active Ser Ver Pages に対応(バージョン2.2新機能) PL/SQLマルチカーソル・リターンのサポート(バージョン2.2新機能) IIS/MTS相当の接続プール機能のサポート(バージョン2.3新機能) |
create or replace PROCEDURE GET_IP is g_ip varchar2(80); BEGIN g_ip := owa_util.get_cgi_env('REMOTE_ADDR'); htp.htmlOpen; htp.headOpen; htp.print('<TITLE>GET_IP</TITLE>'); htp.headClose; htp.bodyOpen; htp.p(g_ip); htp.bodyClose; htp.htmlClose; END; / |
日本オラクルは、98年3月18日発売のリレーショナル・データベースサーバー「オラクル8 ワークグループサーバー リリース8.0.5」Linux版をキャンペーン価格9万8000円で販売する。通常価格の22万円から約55%の割り引きを行うもので、期間は9月30日まで。対象は、5同時ユーザー/10クライアント・パッケージのみで、他は定価通り。10同時ユーザー/20クライアント・パッケージが44万円、追加ライセンスパックは1同時ユーザー4万円、10クライアント10万円など。 http://www.oracle.co.jp/news/linux/index.html 評価版が次の雑誌等に付いています。 Linux World 第一弾(99/4) IDGコミュニケーションズ Linux magazine 1999 No.1 ASCII すみからすみまでLinux 技術評論社 Oracle8 Linux版トライアルキット アスキー出版局 |
start.batの中身の例 set ORACLE_SID=ORCL net start OracleServiceORCL net start OracleStartORCL net start OracleTNSListener80 |
spool 保存ファイル名 set heading off /*フィールド名未表示*/ set pagesize 0 /*間を空けない*/ SELECT '"'||フィールド名||'","'||フィールド名||'"' FROM テーブル名; spool off; |
sqlldr80.exe sqlldr80 control=ctl.dat ctl.datの中身 load data infile '入力CSVファイル名' into table テーブル名 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' (フィールド1, フィールド2,...) 03/03/29補足 sqlldrでは単純insert(デフォルト)以外に次が使えます。 append replace truncate (データが存在している場合は削除してから=replaceより速い) load data infile '入力CSVファイル名' into table テーブル名 append FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' (フィールド1, フィールド2,...) |
前ページに戻る---> RETURN