SQLの最近のブログ記事

画面出力用のユーティリティパッケージ


  • プログラム終了時に一気にメッセージが出る。ので、その行実行時ではないことに注意。

  • 出力先はSQLPlusかSerever Mnagerの画面しかできない。

  • 画面出力用の設定(プログラムを実行する前にセット) SET SERVEROUTPUT ON

DECLARE
	wk_test VARCHAR2(100);
BEGIN
	wk_test := '変数の内容を表示';
	DBMS_OUTPUT.PUT_LINE(wk_test);
	IF wk_test IS NOT NULL THEN
		DBMS_OUTPUT.PUT_LINE('固定メッセージも出力できる');
	ELSE
		DBMS_OUTPUT.PUT_LINE('出ないはずのメッセージ');
	END IF;
	DBMS_OUTPUT.PUT('改行しない');
	DBMS_OUTPUT.PUT('ので続けて出力されます');
	DBMS_OUTPUT.NEW_LINE;
END;

host ホストのコマンド

OEMの優先接続情報が通らないときなど。

DB起動
startup

マウントまで起動
startup mount

DB停止
shutdown immediate

トリガー

トリガーが管理されている表
DESC USER_TRIGGERS

どんなトリガーがあるかを調べる
SELECT trigger_name, trigger_type, table_name, column_name, status FROM user_triggers;

トリガーのオン・オフ
ALTER TRIGGER トリガー名 DISABLE;

DISABLE・・・使用付加、ENABLE・・・使用可

PL/SQLのWrap

DBのuser_sourceでプログラムのソースが読まれないように暗号化するコマンド
wrap iname=『c:¥からのパス』

ソースを見る
SELECT line || ' : ' || text FROM user_source
WHERE name = 'プログラム名';

エラーのあった行だけ表示
SELECT s.line || ' : ' || s.text FROM user_source s, user_errors e
WHERE s.name = e.name AND s.line = e.line AND s.name = 'プログラム名';

ログインしているユーザの所有するオブジェクト一覧の表示のSQL
SELECT object_type, object_name FROM user_objects ORDER BY object_type,object_name;

postgresでオートナンバー型

要はシーケンスをつけてあげる。serial型はにすると、同じ名前の列の(同じ名前の)シーケンスが自動的につくられる。
なので、元のやつは消してあげないと、気持ち悪い。DB設計時に作らないと外部キーがあるときめんどくさい。

alter table テーブル名 add 列名 serial;

Microsoft Jet データベース エンジン SQL と ANSI SQL のデータ型
AUTOINCREMENTはSQL1999では使えない・・・。
Create Table テーブル名 (列名 Counter(1)); Access Jet用

PostgreSQLでBLOB

MOYO Laboratory Java + PostgreSQL で BLOB を扱う その 3
正直難しい。まだわからない。しかしなんか面白い。 その1と2も面白い。わかる人には貴重な情報な気がする。


TECHSCORE
BLOBの読み書きについて。

postgresql よく使うコマンド

postgresqlの基本コマンドをまとめてみました。

ファイルからスクリプトを読み込んで 実行 \i ファイル名 など