開発者リファレンス : データ アクセス方法 : SQL Engine Reference : システム ストアド プロシージャ
  
このページをシェアする                  
システム ストアド プロシージャ
Zen システム ストアド プロシージャのリファレンス
以下のトピックでストアド プロシージャについて説明します。
Zen システム ストアド プロシージャ
Zen システム ストアド プロシージャ
システム ストアド プロシージャは、データ定義言語(DDL)では取り扱われない管理タスクや情報タスクの遂行に利用できます。システム ストアド プロシージャには psp_ プレフィックスが付きます。
メモ:psp_ プレフィックスを付けた名前のストアド プロシージャを作成しないでください。システム ストアド プロシージャと同じ名前を持つユーザー作成のストアド プロシージャの実行は失敗します。
次の表は、現在サポートされているシステム ストアド プロシージャの一覧を示します。
表 50 Zen システム ストアド プロシージャ
特段の記述がない限り、システム ストアド プロシージャの例は、Demodata サンプル データベースを使用しているか、または Zen システム テーブルを参照しています。
データベース内のシステム ストアド プロシージャを実行して、セキュリティで保護されたデータベースから情報を取得しようとすると、エラーが発生します。セキュリティで保護されたデータベース内の情報にほかのデータベースからアクセスすることはできません。
psp_columns
現在のデータベースまたは指定されたデータベースから、特定テーブルの列の一覧とそれに関連する情報を返します。
構文
call psp_columns(['database_qualifier'], 'table_name', ['column_name'])
引数
表 51 psp_columns の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
table_name
VARCHAR(255)
(デフォルト値なし)
列情報を要求するテーブルの名前
column_name
VARCHAR(255)
テーブルのすべての列
指定したテーブルの列名
返される結果セット
表 52 psp_columns で返される結果セット
列名
データ型
説明
TABLE_QUALIFIER
VARCHAR(20)
データベースの名前
TABLE_OWNER
VARCHAR(20)
テーブル所有者の名前。テーブル所有者は、将来使用するために予約されています。現在は空(ヌル)が返ります。
TABLE_NAME
VARCHAR(255)
テーブルの名前
COLUMN_NAME
VARCHAR(255)
テーブルの列名
DATA_TYPE
SMALLINT
列のデータ型コード。Zen トランザクショナルおよびリレーショナル データ型を参照してください。
TYPE_NAME
VARCHAR(32)
列のデータ型の、DATA_TYPE 値に対応する名前
PRECISION
INTEGER
列の精度(列のデータ型が Decimal、Numeric などである場合)。Decimal データ型の精度と小数位を参照してください。
LENGTH
INTEGER
列の長さ。
SCALE
SMALLINT
列の小数点以下の桁数(列のデータ型が Decimal、Numeric などである場合)。
RADIX
SMALLINT
数値データ型の基数
NULLABLE
SMALLINT
ヌル値の許可を示します。
1 - ヌルを許可する
0 - ヌルを許可しない
REMARKS
VARCHAR(255)
備考フィールド
create table tx (c_binary BINARY(10),
                 c_char CHAR(10),
                 c_tinyint TINYINT,
                 c_smallint SMALLINT,
                 c_int INT,
                 c_bigint BIGINT,
                 c_utinyint UTINYINT);
call psp_columns(, 'tx',);
結果セット
Table_qualifier
Table_owner
Table_name
Column_name
Data_type
Type_name
P
L
S
R
N
R
'demodata'
Null
tx
C_binary
-2
Binary
10
10
Null
Null
1
Null
'demodata'
Null
tx
C_char
-1
Char
10
10
Null
Null
1
Null
'demodata'
Null
tx
C_tinyint
-6
Tinyint
Null
1
0
10
1
Null
.....
 
 
 
 
 
 
 
 
 
 
 
凡例:P = Precision; L = Length; S = Scale; R = Radix; N = Nullable; R = Remarks
============ 
mydatabase という名前のデータベースに tx というテーブルが含まれているとします。
call psp_columns('mydatabase', 'tx', )
結果セット
Table_qualifier
Table_owner
Table_name
Column_name
Data_type
Type_name
P
L
S
R
N
R
'wsrde'
Null
tx
C_binary
-2
Binary
10
10
Null
Null
1
Null
'wsrde'
Null
tx
C_char
-1
Char
10
10
Null
Null
1
Null
'wsrde'
Null
tx
C_tinyint
-6
Tinyint
Null
1
0
10
1
Null
.....
 
 
 
 
 
 
 
 
 
 
 
凡例:P = Precision; L = Length; S = Scale; R = Radix; N = Nullable; R = Remarks
============ 
call psp_columns('mydatabase', 'tx', 'c_binary')
結果セット
Table_qualifier
Table_owner
Table_name
Column_name
Data_type
Type_name
P
L
S
R
N
R
'wsrde'
Null
tx
C_binary
-2
Binary
10
10
Null
Null
1
Null
凡例:P = Precision; L = Length; S = Scale; R = Radix; N = Nullable; R = Remarks
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
database_qualifier が未定義のデータベースである
テーブルを開けません:X$File
table_name がデータベース内に定義されていない
エラーは返されず、結果も返されません
table_name がヌルである
テーブル名はヌルにできません
table_name が空文字列である
テーブル名は空文字列にできません。
column_name が空文字列である
列名は空文字列にできません
column_name がテーブル内に定義されていない
エラーは返されず、結果も返されません
psp_column_attributes
現在のデータベースまたは指定されたデータベースから、列属性の一覧とそれに関連する情報を返します。
構文
call psp_column_attributes(['database_qualifier'], ['table_name'], ['column_name'])
引数
表 53 psp_column_attributes の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
ログインしている現在のデータベース
詳細を取得するデータベースの名前
table_name
VARCHAR(255)
指定したデータベースのすべてのテーブル
列情報を要求するテーブルの名前
column_name
VARCHAR(255)
指定したテーブルのすべての列
指定したテーブルの列名
返される結果セット
表 54 psp_column_attributes で返される結果セット
列名
データ型
説明
TABLE_QUALIFIER
VARCHAR(20)
データベースの名前
TABLE_OWNER
VARCHAR(20)
テーブル所有者の名前
TABLE_NAME
VARCHAR(255)
テーブルの名前
COLUMN_NAME
VARCHAR(255)
テーブルの列名
ATTRIB_TYPE
CHAR(10)
列にデフォルト値が割り当てられている場合は "Default"
列に照合順序が使用されている場合は "Collate"
列に論理位置がある場合は "L"
これ以外のすべての属性はヌルまたはブランク
ATTRIB_SIZE
USMALLINT
列属性のサイズ
ATTRIB_VALUE
LONGVARCHAR
列属性の値
create table tx (c_binary binary (10) default 01,
                 c_char char (11) default 'thisisatest',
                 c_tinyint TINYINT,
                 c_SMALLINT SMALLINT,
                 c_int INT,
                 c_bigint BIGINT,
                 c_utinyint uTINYINT);
call psp_column_attributes(, , );
結果セット
Table_qualifier
Table_owner
Table_name
Column_name
Attrib_Type
Attrib_Size
Attrib_Value
'demodata'
Null
tx
C_binary
Default
2
01
'demodata'
Null
tx
C_char
Default
11
'Thisisatest'
============ 
create table tlogicalmv (col1 integer, col2 char(20))
alter table tlogicalmv psql_move col1 to 2
call psp_column_attributes(, 'tlogicalmv' , )
結果セット
Table_qualifier
Table_owner
Table_name
Column_name
Attrib_Type
Attrib_Size
Attrib_Value
'demodata'
Null
tlogicalmv
col2
L
1
1
'demodata'
Null
tlogicalmv
col1
L
1
2
============ 
call psp_column_attributes(, 'tx', 'c_binary')
結果セット
Table_qualifier
Table_owner
Table_name
Column_name
Attrib_Type
Attrib_Size
Attrib_Value
'demodata'
Null
tx
C_binary
Default
2
01
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
database_qualifier が未定義のデータベースである
テーブルを開けません:X$File
table_name がデータベース内に定義されていない
エラーは返されず、結果も返されません
table_name がヌルである
テーブル名はヌルにできません
table_name が空文字列である
テーブル名は空文字列にできません。
column_name が空文字列である
列名は空文字列にできません
column_name がテーブル内に定義されていない
エラーは返されず、結果も返されません
psp_column_rights
現在のデータベースまたは指定されたデータベースから、特定テーブルの列権限の一覧とそれに関連する情報を返します。
メモ:このシステム ストアド プロシージャは、GRANT 構文によって明示的に指定されている列のアクセス権についてのみ一覧を返します。
構文
call psp_column_rights(['database_qualifier'], 'table_name', ['column_name'], ['user_name'])
引数
表 55 psp_column_rights の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
table_name
VARCHAR(255)
(デフォルト値なし)
アクセス権が指定されているテーブルの名前
column_name
VARCHAR(255)
指定したテーブルのすべての列
アクセス権を取得する列の名前
user_name
VARCHAR(255)
現在のユーザー
列のアクセス権の一覧を取得する必要のあるユーザーの名前。パターン検索がサポートされます。
返される結果セット
表 56 psp_column_rights で返される結果セット
列名
データ型
説明
TABLE_QUALIFIER
VARCHAR(20)
データベースの名前
TABLE_OWNER
VARCHAR(20)
テーブルの所有者の名前
USER_NAME(GRANTEE)
VARCHAR(255)
ユーザーの名前
TABLE_NAME
VARCHAR(255)
テーブルの名前
COLUMN_NAME
VARCHAR(255)
異なるアクセス権が付与されている列の名前
RIGHTS
VARCHAR(12)
次のいずれかの値です。
SELECT
UPDATE
INSERT
Demodata データベースの Dept テーブルに対して次の権限を付与した後、列権限を取得します。
GRANT SELECT(Name, Building_Name) ON Dept TO John;
GRANT UPDATE(Name) ON Dept TO Mary;
GRANT INSERT(Building_Name) ON Dept TO John;
 
Call psp_column_rights(,'Dept', ,'%');
結果セット
Table_qualifier
Table_owner
User_name
Table_name
Column_name
Rights
Demodata
Null
John
Dept
Name
SELECT
Demodata
Null
John
Dept
Building_name
SELECT
Demodata
Null
John
Dept
Building_name
INSERT
Demodata
Null
Mary
Dept
Name
UPDATE
メモ:Master ユーザーには列のアクセス権が明示的に定義されていないため、psp_column_rights はそのユーザーの結果を返しません。
ユーザー John がデータベースにログオンしているとします。次のステートメントは、ユーザー John が Dept テーブルに対して持っている列権限を出力します。
call psp_column_rights ('demodata', 'Dept', ,)
結果セット
Table_qualifier
Table_owner
User_name
Table_name
Column_name
Rights
Demodata
Null
John
Dept
Building_name
INSERT
Demodata
Null
John
Dept
Building_name
SELECT
Demodata
Null
John
Dept
Name
SELECT
メモ:ユーザーにテーブル レベルの権限が付与されている場合は(例:GRANT SELECT ON Dept TO Mary)、psp_column_rights を呼び出してもアクセス権は何も返されません。アクセス権は特定の列ではなくテーブルに付与されています。
次のステートメントは、現在のユーザーを示す列 Name が Dept テーブルに対して持っている列権限を出力します。
call psp_column_rights ('demodata', 'dept', 'name',)
結果セット
Table_qualifier
Table_owner
User_name
Table_name
Column_name
Rights
Demodata
Null
John
Dept
Name
SELECT
次のステートメントは、ユーザー Mary が Dept テーブルに対して持っている列権限を出力します。
call psp_column_rights('demodata', 'dept', , 'Mary')
結果セット
Table_qualifier
Table_owner
User_name
Table_name
Column_name
Rights
Demodata
Null
Mary
Dept
Name
UPDATE
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
table_name がヌルである
テーブル名はヌルにできません。
table_name が空文字列である
テーブル名は空文字列にできません。
column_name が空文字列である
列名は空文字列にできません。
user_name が空文字列である
ユーザー名は空文字列にできません。
psp_fkeys
現在のデータベース内の特定テーブルの外部キー情報を返します。
構文
call psp_fkeys(['table_qualifier'], 'pkey_table_name', ['fkey_table_name'])
引数
表 57 psp_fkeys の引数
パラメーター
データ型
デフォルト値
説明
table_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
pkey_table_name
VARCHAR(255)
(デフォルト値なし)
主キー列に外部キーが関連付けられているテーブルの名前
fkey_table_name
VARCHAR(255)
(デフォルト値なし)
外部キー情報を取得する必要のあるテーブルの名前
返される結果セット
表 58 psp_fkeys で返される結果セット
列名
データ型
説明
PKTABLE_QUALIFIER
VARCHAR(20)
主キー テーブルのデータベース名
PKTABLE_OWNER
VARCHAR(20)
主キー テーブルの所有者の名前
PKTABLE_NAME
VARCHAR(255)
主キー テーブルの名前
PKCOLUMN_NAME
VARCHAR(255)
主キー列の列名
KEY_SEQ
USMALLINT
キーの順序。この列の値は、X$Index の Xi$Part に対応します。X$Index を参照してください。
FKTABLE_QUALIFIER
VARCHAR(20)
外部キー テーブルのデータベース名
FKTABLE_OWNER
VARCHAR(20)
外部キー テーブルの所有者の名前
FKTABLE_NAME
VARCHAR(255)
外部キー テーブルの名前
FKCOLUMN_NAME
VARCHAR(255)
外部キー列の列名
UPDATE_RULE
Utinyint
更新規則
DELETE_RULE
Utinyint
削除規則
PK_NAME
VARCHAR(255)
主キーの名前
FK_NAME
VARCHAR(255)
外部キーの名前
CREATE TABLE Employee
(
Id INTEGER NOT NULL,
Name VARCHAR(50) NOT NULL,
SupId INTEGER NOT NULL
);
 
ALTER TABLE Employee
ADD CONSTRAINT EmpPkey
PRIMARY KEY(Id);
 
ALTER TABLE Employee
ADD CONSTRAINT ForgnKey
FOREIGN KEY(SupId) REFERENCES
Employee(Id) ON DELETE CASCADE;
 
call psp_fkeys(,'Employee',);
結果セット
PkQ
PkO
PkT
PkCol
Seq
FkQ
FkO
FkT
FkCol
UR
DR
PK
FK
Demodata
Null
Employee
Id
0
Demodata
Null
Employee
Supid
1
2
EmpPkey
ForgnKey
凡例:PkQ = Pkey_table_qualifier; PkO = Pkey_table_owner; PkT = Pktable_name; PkCol = Pk_column_name; Seq = Key_seq; FkQ = Fktable_qualifier; FkO = Fktable_owner; FkT = Fktable_name; FkCol = Fkcolumn_name; UR = Update_rule; DR = Delete_rule; Pk = Pk_name; FK = Fk_name
エラー状況
条件
エラー メッセージ
table_qualifier が空文字列である
テーブル名は空文字列にできません。
pKey_table_name が空文字列である
主キー テーブル名は空文字列にできません。
pKey_table_name がヌルである
引数またはデフォルト値が指定されていません。引数:2。
fKey_table_name が空文字列である
外部キー テーブル名は空文字列にできません。
psp_groups
現在のデータベースまたは指定されたデータベースから、グループの一覧とそれに関連する情報を返します。
構文
call psp_groups(['database_qualifier'], ['group_name'])
引数
表 59 psp_groups の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
group_name
VARCHAR(255)
(デフォルト値なし)
グループ情報の取得に使用するグループの名前。パターン検索がサポートされます。
返される結果セット
表 60 psp_groups で返される結果セット
列名
データ型
説明
DATABASE_QUALIFIER
VARCHAR(20)
データベースの名前
GROUP_ID
USMALLINT
グループ ID
GROUP_NAME
VARCHAR(255)
グループの名前
Demodata サンプル データベースに 2 つのグループ、DevGrp1 と DevGrp2 が定義されているとします。
call psp_groups(,)
結果セット
database_qualifier
Group_Id
Group_Name
Demodata
1
PUBLIC
Demodata
2
DevGrp1
Demodata
3
DevGrp2
============ 
call psp_groups('Demodata', 'D%')
結果セット
database_qualifier
Group_Id
Group_Name
Demodata
2
DevGrp1
Demodata
3
DevGrp2
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
group_name が空文字列である
グループ名は空文字列にできません。
psp_help_sp
現在のデータベースまたは指定されたデータベースから、特定のストアド プロシージャの定義テキストを返します。
構文
call psp_help_sp('[database_qualifier'], 'procedure_name')
引数
表 61 psp_help_sp の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
procedure_name
CHAR(255)
(デフォルト値なし)
定義テキストを要求するプロシージャの名前。パターン検索はサポートされません。
返される結果セット
表 62 psp_help_sp で返される結果セット
列名
データ型
説明
DATABASE_QUALIFIER
VARCHAR(20)
データベースの名前
SP_TEXT
LONGVARCHAR
ストアド プロシージャの定義テキスト
Demodata サンプル データベースには、"Myproc" として保存された次のようなストアド プロシージャが含まれているとします。
Create procedure Myproc(:a integer, OUT :b integer) as
Begin
Set :a = :a + 10;
Set :b = :a;
End
次のステートメントは、現在のデータベース内にあるストアド プロシージャ "Myproc" の定義テキストを出力します。
call psp_help_sp(, 'Myproc')
結果セット
Database_Qualifier
SP_TEXT
Demodata
 Create procedure Myproc(:a integer, OUT :b integer) as
 Begin
Set :a = :a + 10;
Set :b = :a;
 End
============ 
"wsrde" という名前のデータベースに、"Myproc1" として保存された次のようなストアド プロシージャが含まれているとします。
Create procedure Myproc1(:a integer) returns (name char(20))
as
Begin
Select name from employee where Id =:a;
End
次のステートメントは、データベース "wsrde" 内にあるストアド プロシージャ "Myproc1" の定義テキストを出力します。
call psp_help_sp('wsrde', 'Myproc1')
結果セット
Database_Qualifier
SP_TEXT
wsrde
 Create procedure Myproc1(:a integer) returns (name char(20))
 as
 Begin
Select name from employee where Id =:a;
 End
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列またはヌルである
有効なデータベース名を入力してください。データベース名は空文字列にできません。
procedure_name がヌルである
引数またはデフォルト値が指定されていません。
procedure_name が空文字列である
プロシージャ名は空文字列にできません。
psp_help_trigger
現在のデータベースまたは指定されたデータベースから、トリガーの定義テキストを返します。
構文
call psp_help_trigger (['database_qualifier'], 'trigger_name')
引数
表 63 psp_help_trigger の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
trigger_name
VARCHAR(255)
(デフォルト値なし)
定義テキストを取得するトリガーの名前パターン検索がサポートされます。
返される結果セット
表 64 psp_help_trigger で返される結果セット
列名
データ型
説明
DATABASE_QUALIFIER
VARCHAR(20)
データベースの名前
TRIGGER_TEXT
LONGVARCHAR
トリガーの定義テキスト
次のステートメントにより、'MyInsert' トリガーの定義が出力されます。
CREATE TABLE A
(
  col1 INTEGER,
  col2 CHAR(255)
);
 
CREATE TABLE B
 
(
  col1 INTEGER,
  col2 CHAR(255)
);
 
CREATE TRIGGER MyInsert
AFTER INSERT ON A
FOR EACH ROW
INSERT INTO B VALUES
(NEW.col1, NEW.col2);
 
call psp_help_trigger(,'MyIns%');
結果セット
Database_Qualifier
TRIGGER_TEXT
Demodata
 CREATE TRIGGER MyInsert
AFTER INSERT ON A
FOR EACH ROW
INSERT INTO B VALUES
(NEW.col1, NEW.col2);
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
trigger_name がヌルである
引数またはデフォルト値が指定されていません。
trigger_name が空文字列である
トリガー名は空文字列にできません。
psp_help_udf
現在のデータベースまたは指定されたデータベースから、特定のユーザー定義関数(UDF)のテキストを返します。
構文
call psp_help_udf (['database_qualifier'], 'udf_name')
引数
表 65 psp_help_udf の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
udf_name
VARCHAR(255)
(デフォルト値なし)
関数テキストを要求するユーザー定義関数の名前。パターン検索がサポートされます。
返される結果セット
表 66 psp_help_udf で返される結果セット
列名
データ型
説明
DATABASE_QUALIFIER
VARCHAR(20)
データベースの名前
UDF_TEXT
LONGVARCHAR
ユーザー定義関数のテキスト
call psp_help_udf(, 'Myfunction')
結果セット
Database_Qualifier
UDF_TEXT
Demodata
 Create function Myfunction(:a integer) Returns integer
 as
 Begin
Return :a * :a;
 End
============ 
call psp_help_udf('mydbase', 'Get%')
結果セット
Database_Qualifier
UDF_TEXT
wsrde
 CREATE FUNCTION GetSmallest(:A integer, :B Integer)
 RETURNS Integer
 AS
 BEGIN
DECLARE :smallest INTEGER
IF (:A < :B ) THEN
SET :smallest = :A;
ELSE
SET :smallest = :B;
END IF;
RETURN :smallest;
 END
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
udf_name がヌルである
引数またはデフォルト値が指定されていません。
udf_name が空文字列である
ユーザー定義関数名は空文字列にできません。
psp_help_view
現在のデータベースまたは指定されたデータベースから、ビューの定義テキストを返します。
構文
call psp_help_view(['database_qualifier'], 'view_name')
引数
表 67 psp_help_view の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
view_name
VARCHAR(255)
(デフォルト値なし)
定義テキストを要求するビューの名前。パターン検索がサポートされます。
返される結果セット
表 68 psp_help_view で返される結果セット
列名
データ型
説明
DATABASE_QUALIFIER
VARCHAR(20)
データベースの名前
VIEW_TEXT
LONGVARCHAR
ビューの定義テキスト
Demodata サンプル データベースに次のビューが存在するとします。
CREATE VIEW vw_Person (lastn,firstn,phone) AS
SELECT Last_Name, First_Name, Phone
FROM Person;
次のステートメントは、Demodata データベース内のビュー "vw_Person" の定義テキストを返します。
call psp_help_view(,'vw_Person')
または
call psp_help_view(,'vw_%')
結果セット
Database_Qualifier
VIEW_TEXT
Demodata
SELECT "T1" ."Last_Name" ,"T1" ."First_Name" ,"T1" ."Phone" FROM "Person" "T1"
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
view_name がヌルである
引数またはデフォルト値が指定されていません。
view_name が空文字列である
ビュー名は空文字列にできません。
psp_indexes
指定したテーブルに定義されているインデックスの一覧を返します。また、各インデックスについて、X$Index テーブルに保存されているとおりにインデックス プロパティを列挙します。
構文
call psp_indexes(['table_qualifier'], ['table_name'])
引数
表 69 psp_indexes の引数
パラメーター
データ型
デフォルト値
説明
table_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
table_name
VARCHAR(255)
(デフォルト値なし)
インデックスを取得するテーブルの名前パターン検索がサポートされます。
返される結果セット
表 70 psp_indexes で返される結果セット
列名
データ型
説明
TABLE_QUALIFIER
VARCHAR(20)
データベースの名前
TABLE_OWNER
VARCHAR(20)
主キー テーブルの所有者の名前
TABLE_NAME
VARCHAR(255)
主キー テーブルの名前
INDEX_NAME
VARCHAR(255)
インデックスの名前
INDEX_TYPE
VARCHAR(20)
インデックスの種類:primary(主)、foreign(外部)、normal(標準)
COLUMN_NAME
VARCHAR(255)
インデックスが定義されている列の名前
ORDINAL_POSITION
USMALLINT
インデックスの位置を表す序数
DUPLICATES_ALLOWED
CHAR(3)
Yes - 重複インデックスの場合
No - 重複インデックスでない場合
UPDATABLE
CHAR(3)
Yes - インデックスが更新可能な場合
No - インデックスが更新可能でない場合
CASE_SENSITIVE
CHAR(3)
Yes - インデックスが大文字小文字を区別する場合
No - インデックスが大文字小文字を区別しない場合
ASC_DESC
CHAR(1)
D - 降順
A - 昇順
NAMED_INDEX
CHAR(3)
Yes - 名前付きインデックスの場合
No - 名前付きインデックスでない場合
call psp_indexes(,)
結果セット
Qual
TO
TN
IN
IT
CN
Opos
Dup
Up
Case
A/D
NI
Demodata
Null
Billing
Student_Trans
Normal Index
Student_ID
0
No
Yes
No
A
Yes
Demodata
Null
Billing
Student_Trans
Normal Index
Transaction_Number
1
No
Yes
No
A
Yes
Demodata
Null
Billing
Student_Trans
Normal Index
Log
2
No
Yes
No
A
Yes
.....
 
 
 
 
 
 
 
 
 
 
 
凡例:Qual = Table_qualifier; TO = Table_owner; TN = Table_name; IN = Index_name; IT = Index_type; CN = Column_name; Opos = Ordinal_position; Dup = Duplicates_allowed; UP = Updatable; Case = Case_sensitive; A/D = Asc_desc; NI = Named_index
============ 
call psp_indexes('demodata', 'Dep%')
結果セット
Qual
TO
TN
IN
IT
CN
Opos
Dup
Up
Case
A/D
NI
Demodata
Null
Dept
Building_Room
Normal Index
Building_Name
0
Yes
Yes
Yes
A
Yes
Demodata
Null
Dept
Building_Room
Normal Index
Room_Number
1
Yes
Yes
No
A
Yes
Demodata
Null
Dept
Dept_Head
Normal Index
Head_Of_Dept
0
No
Yes
No
A
Yes
Demodata
Null
Dept
Dept_Name
Normal Index
Name
0
No
Yes
Yes
A
Yes
凡例:Qual = Table_qualifier; TO = Table_owner; TN = Table_name; IN = Index_name; IT = Index_type; CN = Column_name; Opos = Ordinal_position; Dup = Duplicates_allowed; UP = Updatable; Case = Case_sensitive; A/D = Asc_desc; NI = Named_index
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
table_name が空文字列である
ビュー名は空文字列にできません。
psp_pkeys
現在のデータベースまたは指定されたデータベースから、特定テーブルの主キー情報を返します。
構文
call psp_pkeys(['pkey_table_qualifier'] 'table_name')
引数
表 71 psp_pkeys の引数
パラメーター
データ型
デフォルト値
説明
pkey_table_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
table_name
VARCHAR(255)
(デフォルト値なし)
主キー情報を要求するテーブルの名前。パターン検索がサポートされます。
返される結果セット
表 72 psp_pkeys で返される結果セット
列名
データ型
説明
TABLE_QUALIFIER
VARCHAR(20)
データベースの名前
TABLE_OWNER
VARCHAR(20)
主キー テーブルの所有者の名前
TABLE_NAME
VARCHAR(255)
主キー テーブルの名前
COLUMN_NAME
VARCHAR(255)
主キー列の名前
COLUMN_SEQ
USMALLINT
列の順序(セグメント インデックス)
PK_NAME
VARCHAR(255)
主キーの名前
次のステートメントは、'pkeytest1' テーブルに定義されている主キーに関する情報を返します。
CREATE TABLE pkeytest1
(
  col1 int NOT NULL,
  col2 int NOT NULL,
  col3 VARCHAR(20) NOT NULL,
  PRIMARY KEY(col1, col2),
  UNIQUE(col3)
);
 
call psp_pkeys(,'pkeytest1');
結果セット
Table_qualifier
Table_owner
Table_name
Column_name
Column_Seq
PK_name
'demodata'
Null
Pkeytest1
Col1
0
PK_col1
'demodata'
Null
Pkeytest1
Col2
1
PK_col1
エラー状況
条件
エラー メッセージ
pkey_table_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
table_name がヌルである
引数またはデフォルト値が指定されていません。
table_name が空文字列である
テーブル名は空文字列にできません。
psp_procedure_rights
現在のデータベースまたは指定されたデータベースから、特定ストアド プロシージャのプロシージャ権限の一覧とそれに関連する情報を返します。ストアド プロシージャは、信頼されるものでも信頼されないものでもかまいません。信頼されるオブジェクトと信頼されないオブジェクトを参照してください。
構文
call psp_procedure_rights(['database_qualifier'], ['procedure_name'], ['user_name'])
引数
表 73 psp_procedure_rights の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
procedure_name
VARCHAR(255)
(デフォルト値なし)
アクセス権が指定されているプロシージャの名前。パターン検索がサポートされます。
user_name
VARCHAR(255)
現在のユーザー
プロシージャのアクセス権の一覧を取得する必要のあるユーザーの名前。パターン検索がサポートされます。
返される結果セット
表 74 psp_procedure_rights で返される結果セット
列名
データ型
説明
PROCEDURE_QUALIFIER
VARCHAR(20)
データベースの名前
PROCEDURE_OWNER
VARCHAR(20)
プロシージャの所有者の名前
USER_NAME(GRANTEE)
VARCHAR(255)
ユーザーの名前
PROCEDURE_NAME
VARCHAR(255)
プロシージャの名前
RIGHTS
VARCHAR(12)
次のいずれかの値です。
ALTER
EXECUTE
RIGHTS は、メタデータ バージョン 2 を使用するデータベースのプロシージャにのみ付随します。
Demodata サンプル データベースに対して次の権限が存在するとします。
GRANT EXECUTE ON PROCEDURE Dept1_Proc TO John;
GRANT ALTER ON PROCEDURE Dept1_Proc TO Mary;
GRANT ALTER ON PROCEDURE Dept1_Proc TO John;
GRANT EXECUTE ON PROCEDURE Proc2 TO Mary;
GRANT ALTER ON PROCEDURE Proc2 TO Mary;
GRANT ALTER ON PROCEDURE MyProc TO Mary;
次のステートメントは、ユーザー "John" が "Dept1_Proc" ストアド プロシージャに対して持っている権限を出力します。
call psp_procedure_rights(,'Dept1_Proc', 'John');
結果セット
Procedure_Qualifier
Procedure_owner
User_name
Procedure_name
Rights
Demodata
Null
John
Dept1_Proc
ALTER
Demodata
Null
John
Dept1_Proc
EXECUTE
次のステートメントは、ユーザー "Mary" が "Proc2" ストアド プロシージャに対して持っている権限を出力します。
call psp_procedure_rights('demodata', '%Pr%', 'M%')
結果セット
Procedure_Qualifier
Procedure_owner
User_name
Procedure_name
Rights
Demodata
Null
Mary
MyProc
ALTER
Demodata
Null
Mary
Proc2
ALTER
Demodata
Null
Mary
Proc2
EXECUTE
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
procedure_name が空文字列である
プロシージャ名は空文字列にできません。
user_name が空文字列である
ユーザー名は空文字列にできません。
メタデータ バージョン 1 を使用するデータベースで psp_procedure_rights を呼び出す
メタデータ バージョン 1 では、ビューおよびストアド プロシージャの権限はサポートされていません。
psp_rename
お使いのマシンが現在接続されているデータベース内の列、インデックス、関数、プロシージャ、テーブル、トリガー、またはビューの名前を変更します。
構文
call psp_rename('object_name','new_name','object_type')
引数
表 75 psp_rename の引数
パラメーター
データ型
説明
object_name
VARCHAR(776)
列、インデックス、ユーザー定義関数、ストアド プロシージャ、テーブル、トリガー、またはビューの現在の名前
object_name は、オブジェクトの種類に応じて特有の形式で指定する必要があります。
列:テーブル名.列名
インデックス:テーブル名.インデックス名
関数:関数名
プロシージャ:プロシージャ名
テーブル:テーブル名
トリガ:テーブル名.トリガ名
ビュー:ビュー名
new_name
VARCHAR(776)
オブジェクトのユーザー定義名。名前は、オブジェクトの種類に合った名前付け規則に従っている必要があります。『Zen Programmer's Guide』の名前付け規則を参照してください。
object_type
VARCHAR(13)
名前を変更するオブジェクトの種類。object_type は次のいずれかでなければなりません。列、インデックス、関数、プロシージャ、テーブル、トリガー、またはビュー。
次のステートメントは、現在のデータベース内のストアド プロシージャ "checkstatus" の名前を "eligibility" に変更します。
call psp_rename('checkstatus', 'eligibility', 'PROCEDURE')
エラー状況
psp_rename から返されるすべてのエラーはステータス コード -5099 を使用します。『Status Codes and Messages』の -5099:ストアド プロシージャに関連するエラー状況を参照してください。
psp_stored_procedures
現在のデータベースまたは指定されたデータベースから、ストアド プロシージャの一覧とそれに関連する情報を返します。
構文
call psp_stored_procedures(['database_qualifier'], ['procedure_name'], ['procedure_type'])
引数
表 76 psp_stored_procedures の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
procedure_name
VARCHAR(255)
(デフォルト値なし)
情報を要求するストアド プロシージャの名前パターン検索がサポートされます。
procedure_type
VARCHAR(5)
(デフォルト値なし)
'SP' - ストアド プロシージャを返します
'SSP' - システム ストアド プロシージャを返します(この種類は現在サポートされていません)
メモ:システム ストアド プロシージャは、Zen Control Center に表示されない内部データベース PERVASIVESYSDB に定義されています。
返される結果セット
表 77 psp_stored_procedures で返される結果セット
列名
データ型
説明
PROCEDURE_QUALIFIER
VARCHAR(20)
データベースの名前
PROCEDURE_OWNER
VARCHAR(20)
プロシージャの所有者の名前
PROCEDURE_NAME
VARCHAR(255)
プロシージャの名前
PROCEDURE_TYPE
VARCHAR(25)
プロシージャの種類。STORED PROCEDURE と SYSTEM STORED PROCEDURE があります。
NUM_INPUT_PARAMS
INT
ヌルを返します。これは、Zen DSN に対して SQLPROCEDURES を実行した場合にはヌルが返されるからです。
NUM_OUTPUT_PARAMS
INT
ヌルを返します。これは、Zen DSN に対して SQLPROCEDURES を実行した場合にはヌルが返されるからです。
NUM_RESULT_SETS
INT
ヌルを返します。これは、Zen DSN に対して SQLPROCEDURES を実行した場合にはヌルが返されるからです。
REMARKS
VARCHAR(255)
備考
TRUSTEE
INTEGER
メタデータ バージョン 2 の場合、信頼されるストアド プロシージャでは 0、信頼されないストアド プロシージャでは -1 を返します。メタデータ バージョン 1 の場合、TRUSTEE 列は空になります。
現在のデータベース mydbase には 2 つのストアド プロシージャ、myproc1 と myproc2 が含まれているとします。次のステートメントは、それらに関する情報を一覧表示します。
Call psp_stored_procedures(, ,)
結果セット
Qualifier1
Owner1
Name1
Type1
Num_input_params
Num_output_params
Num_result_sets
Remarks
Trustee
mydbase
Null
Myproc1
Stored Procedure
Null
Null
Null
Null
 
mydbase
Null
Myproc2
Stored Procedure
Null
Null
Null
Null
 
1 完全な列名は、この名前の前に "procedure_" が付きます。たとえば、Procedure_qualifier や procedure_owner などのようになります。
============ 
次のステートメントは、PERVASIVESYSDB 内部データベースに含まれるストアド プロシージャに関する情報を一覧表示します。
call psp_stored_procedures('PERVASIVESYSDB', 'psp_u%', 'SP')
結果セット
Qualifier1
Owner1
Name1
Type1
Num_input_params
Num_output_params
Num_result_sets
Remarks
Trustee
pervasivesystdb
Null
psp_udfs
Stored Procedure
Null
Null
Null
Null
 
pervasivesystdb
Null
psp_users
Stored Procedure
Null
Null
Null
Null
 
1 完全な列名は、この名前の前に "procedure_" が付きます。たとえば、Procedure_qualifier や procedure_owner などのようになります。
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
table_name が空文字列である
テーブル名は空文字列にできません。
procedure_type が空文字列である
プロシージャの種類は空文字列にできません。
procedure_type が SP、SSP、またはヌル以外の値である
プロシージャの種類には SP、SSP、またはヌルを指定できます
psp_tables
現在のデータベースまたは指定されたデータベースから、テーブルの一覧とそれに関連する情報を返します。
構文
call psp_tables(['database_qualifier'], ['table_name'], ['table_type'])
引数
表 78 psp_tables の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
table_name
VARCHAR(255)
(デフォルト値なし)
情報を取得する必要のあるテーブルの名前パターン検索がサポートされます。
table_type
VARCHAR(20)
(デフォルト値なし)
次のいずれかでなければなりません。
'User table' - ユーザー テーブルのみ返します
'System table' - すべてのシステム テーブルを返します
ヌル - すべてのテーブルを返します
返される結果セット
表 79 psp_tables で返される結果セット
列名
データ型
説明
TABLE_QUALIFIER
VARCHAR(20)
データベースの名前
TABLE_OWNER
VARCHAR(20)
テーブル所有者の名前
TABLE_NAME
VARCHAR(255)
テーブルの名前
TABLE_TYPE
VARCHAR(15)
System table - テーブルがシステム テーブルの場合
User table - 任意のユーザーによって作成されたテーブルの場合
REMARKS
VARCHAR(255)
備考
FILE_LOCATION
VARCHAR(255)
ファイルが保存されている場所
call psp_tables(,,)
結果セット
Table_qualifier
Table_owner
Table_name
Table_Type
Remarks
File_location
Demodata
Null
X$file
System table
Null
File.ddf
Demodata
Null
X$field
System table
Null
Field.ddf
Demodata
Null
X$Attrib
System table
Null
Attrib.ddf
Demodata
Null
Billing
User table
Null
Billing.mkd
.....
 
 
 
 
 
============ 
call psp_tables(, , 'user table')
結果セット
Table_qualifier
Table_owner
Table_name
Table_Type
Remarks
File_location
Demodata
Null
Class
User table
Null
class.mkd
Demodata
Null
Billing
User table
Null
Billing.mkd
.....
 
 
 
 
 
============ 
call psp_tables(, , 'system table')
結果セット
Table_qualifier
Table_owner
Table_name
Table_Type
Remarks
File_location
Demodata
Null
X$file
System table
Null
File.ddf
Demodata
Null
X$field
System table
Null
Field.ddf
Demodata
Null
X$Attrib
System table
Null
Attrib.ddf
.....
 
 
 
 
 
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
table_name が空文字列である
テーブル名は空文字列にできません。
table_type が空文字列である
テーブルの種類は空文字列にできません。
table_type が 'system table'、'user table'、またはヌル以外の値である
テーブルの種類には system table、user table、またはヌルを指定できます。
psp_table_rights
現在のデータベースまたは指定されたデータベースから、特定テーブルのテーブル権限の一覧とそれに関連する情報を返します。
構文
call psp_table_rights(['database_qualifier'], ['table_name'], ['user_name'])
引数
表 80 psp_table_rights の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
table_name
VARCHAR(255)
すべてのテーブル
アクセス権が指定されているテーブルの名前パターン検索がサポートされます。
user_name
VARCHAR(255)
現在のユーザー
テーブルのアクセス権の一覧を取得する必要のあるユーザーの名前。パターン検索がサポートされます。
返される結果セット
表 81 psp_table_rights で返される結果セット
列名
データ型
説明
TABLE_QUALIFIER
VARCHAR(20)
データベースの名前
TABLE_OWNER
VARCHAR(20)
テーブルの所有者の名前
USER_NAME(GRANTEE)
VARCHAR(255)
ユーザーの名前
TABLE_NAME
VARCHAR(255)
テーブルの名前
RIGHTS
VARCHAR(12)
次のいずれかの値です。
SELECT
ALTER
DELETE
INSERT
REFERENCES
SELECT
UPDATE
Demodata サンプル データベースに対して次の権限が存在するとします。
GRANT SELECT ON Dept TO John;
GRANT ALTER ON Dept TO John;
GRANT DELETE ON Dept TO John;
GRANT SELECT ON Class TO Mary;
GRANT ALTER ON Class TO Mary;
次のステートメントは、ユーザー "John" が現在のデータベース(Demodata)の "Dept" テーブルに対して持っているテーブル権限を出力します。
call psp_table_rights(,'Dept', 'John');
結果セット
Table_qualifier
Table_owner
User_name
Table_name
Rights
Demodata
Null
John
Dept
ALTER
Demodata
Null
John
Dept
DELETE
Demodata
Null
John
Dept
SELECT
============ 
ユーザー "Mary" がデータベースにログオンしているとします。次のステートメントは、現在のユーザー(Mary)が Demodata データベースの "Class" テーブルに対して持っているテーブル権限を出力します。
call psp_table_rights('demodata', 'cl%', )
結果セット
Table_qualifier
Table_owner
User_name
Table_name
Rights
Demodata
Null
Mary
Class
SELECT
Demodata
Null
Mary
Class
ALTER
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
table_name が空文字列である
テーブル名は空文字列にできません。
user_name が空文字列である
ユーザー名は空文字列にできません。
psp_triggers
現在のデータベースまたは指定されたデータベースから、トリガーの一覧とそれに関連する情報を返します。
構文
call psp_triggers(['database_qualifier'], ['table_name'])
引数
表 82 psp_triggers の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
table_name
VARCHAR(255)
すべてのテーブル
トリガーが定義されているテーブルの名前。パターン検索がサポートされます。
返される結果セット
表 83 psp_triggers で返される結果セット
列名
データ型
説明
TRIGGER_QUALIFIER
VARCHAR(20)
データベースの名前
TRIGGER_OWNER
VARCHAR(20)
トリガーの所有者の名前
TABLE_NAME
VARCHAR(255)
トリガーが定義されているテーブルの名前。
TRIGGER_NAME
VARCHAR(255)
トリガーの名前
ISUPDATE
UTINYINT
UPDATE トリガーである場合に設定されます
ISDELETE
UTINYINT
DELETE トリガーである場合に設定されます
ISINSERT
UTINYINT
INSERT トリガーである場合に設定されます
ISAFTER
UTINYINT
トリガーの動作時間が "AFTER" である場合に設定されます
ISBEFORE
UTINYINT
トリガーの動作時間が "BEFORE" である場合に設定されます
REMARKS
VARCHAR(255)
備考
現在のデータベースは mydbase であるとします。次のステートメントは、このデータベースに定義されているトリガーの一覧を返します。
CREATE TABLE A
(
  col1 INTEGER,
  col2 CHAR(255)
) ;
 
CREATE TABLE B
(
  col1 INTEGER,
  col2 CHAR(255)
) ;
 
CREATE TRIGGER Insert
  AFTER INSERT ON A
FOR EACH ROW
INSERT INTO B VALUES
(NEW.col1, NEW.col2);
 
call psp_triggers(,);
結果セット
Trigger_qualifier
Trigger_owner
Table_name
Trigger_name
isupdate
isdelete
isinsert
isafter
isbefore
Remarks
mydbase
Null
A
Insert
0
0
1
0
0
Null
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
table_name が空文字列である
テーブル名は空文字列にできません。
psp_udfs
現在のデータベースまたは指定されたデータベースから、ユーザー定義関数(UDF)の一覧とそれに関連する情報を返します。
構文
call psp_udfs(['database_qualifier'], ['udf_name'])
引数
表 84 psp_udfs の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
udf_name
VARCHAR(255)
すべてのユーザー定義関数
詳細を要求する UDF の名前。パターン検索がサポートされます。
返される結果セット
表 85 psp_udfs で返される結果セット
列名
データ型
説明
UDF_QUALIFIER
VARCHAR(20)
データベースの名前
UDF_OWNER
VARCHAR(20)
UDF の所有者の名前
UDF_NAME
VARCHAR(255)
UDF の名前
UDF_TYPE
VARCHAR(25)
UDF の種類(常に 1 に設定されます)
現在、Zen は特別な種類の UDF をサポートしていません。
NUM_INPUT_PARAMS
INT
ヌルを返します。これは、Zen DSN に対して SQLPROCEDURES を実行した場合にはヌルが返されるからです。
NUM_OUTPUT_PARAMS
INT
1 を返します。UDF はスカラー値のみを返します。
NUM_RESULT_SETS
INT
0 を返します。UDF は結果セットを返しません。
REMARKS
VARCHAR(255)
備考
現在のデータベース mydbase には 2 つのユーザー定義関数、calcinterest と factorial が含まれているとします。
call psp_udfs(, )
結果セット
UDF_ qualifier
UDF_owner
UDF_name
Udf_type
Num_input_params
Num_output_params
Num_result_sets
Remarks
mydbase
Null
CalcInterest
1
Null
1
0
Null
mydbase
Null
Factorial
1
Null
1
0
Null
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
udf_name が空文字列である
ユーザー定義関数名は空文字列にできません。
psp_users
現在のデータベースまたは指定されたデータベースから、ユーザーの一覧とそれに関連する情報を返します。
構文
call psp_users(['database_qualifier'], ['group_name'], ['user_name'])
引数
表 86 psp_users の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
group_name
VARCHAR(255)
すべてのグループ(group_name がヌルの場合)
ユーザー情報の取得に使用するグループの名前。パターン検索がサポートされます。グループ名が指定されている(つまり、ヌルでない)場合は、その同じグループに属しているユーザーのみが返されます。
user_name
VARCHAR(255)
すべてのユーザー(user_name がヌルの場合)
ユーザーの名前。パターン検索がサポートされます。
返される結果セット
表 87 psp_users で返される結果セット
列名
データ型
説明
DATABASE_QUALIFIER
VARCHAR(20)
データベースの名前
GROUP_ID
USMALLINT
ユーザーが属しているグループのグループ ID
GROUP_NAME
VARCHAR(255)
ユーザーが属しているグループの名前
USER_ID
USMALLINT
ユーザーの ID
USER_NAME
VARCHAR(255)
ユーザーの名前
現在のデータベース mydbase は、ユーザー John、Mary、および Michael と、グループ DevGrp および DevGrp1 を所有しています。
call psp_users(, , )
結果セット
database_qualifier
Group_Id
Group_Name
User_Id
User_Name
Demodata
1
DevGrp
3
John
Demodata
2
DevGrp1
1
Mary
Demodata
1
DevGrp
4
Michael
============ 
call psp_users(, 'Devgrp', )
結果セット
database_qualifier
Group_Id
Group_Name
User_Id
User_Name
Demodata
1
DevGrp
3
John
Demodata
2
DevGrp
4
Michael
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
user_name がヌルである
ユーザー名はヌルにできません。
group_name が空文字列である
グループ名は空文字列にできません。
psp_view_rights
現在のデータベースまたは指定されたデータベースから、特定ビューのビュー権限の一覧とそれに関連する情報を返します。ビューは、信頼されるものでも信頼されないものでもかまいません。信頼されるオブジェクトと信頼されないオブジェクト を参照してください。
psp_view_rights は、メタデータ バージョン 2 を使用するデータベースにのみ適用されます。
構文
call psp_view_rights(['database_qualifier'], ['view_name'], ['user_name'])
引数
表 88 psp_view_rights の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
view_name
VARCHAR(255)
すべてのビュー(view_name がヌルの場合)
アクセス権が指定されているビューの名前。パターン検索がサポートされます。
user_name
VARCHAR(255)
現在のユーザー(user_name がヌルの場合)
ビューのアクセス権の一覧を取得する必要のあるユーザーの名前。パターン検索がサポートされます。
返される結果セット
表 89 psp_view_rights で返される結果セット
列名
データ型
説明
VIEW_QUALIFIER
VARCHAR(20)
データベースの名前
VIEW_OWNER
VARCHAR(20)
ビューの所有者の名前
USER_NAME(GRANTEE)
VARCHAR(255)
ユーザーの名前
VIEW_NAME
VARCHAR(255)
ビューの名前
RIGHTS
VARCHAR(12)
次のいずれかの値です。
ALTER
DELETE
INSERT
SELECT
UPDATE
Demodata サンプル データベースに対して次の権限が存在するとします。
GRANT SELECT ON VIEW vw_Dept TO John;
GRANT ALTER ON VIEW vw_Dept TO John;
GRANT DELETE ON VIEW vw_Dept TO John;
GRANT SELECT ON VIEW vw_Class TO Mary;
GRANT ALTER ON VIEW vw_Class TO Mary;
GRANT SELECT ON VIEW vw_Class TO Prakesh;
次のステートメントは、ユーザー "John" が "vw_Dept" ビューに対して持っているビュー権限を出力します。
call psp_view_rights(,'vw_Dept', 'John');
結果セット
View_Qualifier
View_owner
User_name
View_name
Rights
Demodata
Null
John
vw_Dept
ALTER
Demodata
Null
John
vw_Dept
DELETE
Demodata
Null
John
vw_Dept
SELECT
============ 
ユーザー "Mary" がデータベースにログオンしているとします。次のステートメントは、現在のユーザー(Mary)がサンプル データベース Demodata 内のすべてのビューに対して持っているビュー権限を出力します。
call psp_view_rights('demodata', , )
結果セット
View_Qualifier
View_owner
User_name
View_name
Rights
Demodata
Null
Mary
vw_Class
ALTER
Demodata
Null
Mary
vw_Class
SELECT
============ 
次のステートメントは、ユーザー "Mary" が "vw_Class" ビューに対して持っているビュー権限を出力します。
call psp_view_rights('demodata', 'vw_C%', 'Mary')
結果セット
View_Qualifier
View_owner
User_name
View_name
Rights
Demodata
Null
Mary
vw_Class
ALTER
Demodata
Null
Mary
vw_Class
SELECT
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
view_name が空文字列である
ビュー名は空文字列にできません。
user_name が空文字列である
ユーザー名は空文字列にできません。
メタデータ バージョン 1 を使用するデータベースで psp_procedure_rights を呼び出す
メタデータ バージョン 1 では、ビューおよびストアド プロシージャの権限はサポートされていません。
psp_views
現在のデータベースまたは指定されたデータベースから、ビューの一覧とそれに関連する情報を返します。
構文
call psp_views(['database_qualifier'], ['view_name'])
引数
表 90 psp_views の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR(20)
現在のデータベース
詳細を取得するデータベースの名前
view_name
VARCHAR(255)
(デフォルト値なし)
情報を要求するビューの名前。パターン検索がサポートされます。
返される結果セット
表 91 psp_views で返される結果セット
列名
データ型
説明
VIEW_QUALIFIER
VARCHAR(20)
データベースの名前
VIEW_OWNER
VARCHAR(20)
ビューの所有者の名前
VIEW_NAME
VARCHAR(255)
ビューの名前
REMARKS
VARCHAR(255)
備考
TRUSTEE
INTEGER
メタデータ バージョン 2 の場合、信頼されるビューでは 0、信頼されないビューでは -1 を返します。メタデータ バージョン 1 の場合、TRUSTEE 列は空になります。
メタデータ バージョン 2 の Demodata2 というデータベースに次のようなビューが存在するとします。
CREATE VIEW vw_Person (lastn,firstn,phone) WITH EXECUTE AS 'Master' AS
SELECT Last_Name, First_Name,Phone FROM Person;
次のステートメントは、現在のデータベースである Demodata2 内のビューの一覧を出力します。
call psp_views(, ,);
結果セット
View_Qualifier
View_Owner
View_Name
Remarks
Trustee
Demodata
Null
Vw_Person
Null
0
============ 
次のステートメントは、Demodata データベース内にあるビュー "vw_Person" のビュー情報を出力します。
call psp_views('demodata', 'vw_P%')
結果セット
View_Qualifier
View_Owner
View_Name
Remarks
Trustee
Demodata
Null
Vw_Person
Null
 
エラー状況
条件
エラー メッセージ
database_qualifier が空文字列である
有効なデータベース名を入力してください。データベース名は空文字列にできません。
view_name が空文字列である
テーブル名は空文字列にできません。