2008年03月05日

LOB形式の書き出し

いやはや。サンプルとかそこいらの記事を鵜呑みにすると
痛い目に合う典型だったな。えらい時間ロスだ。
(ナンデヤネーン、オキャクサンソレジャサンプルニナッテマセンガナ orz )

UTL_FILEパッケージでバイナリを出すには
10g以降の新機能であり、バイナリ指定が必要

× openmode char(1) := 'w';
○ openmode char(2) := 'wb';

また、オフセットが1から始まっているループは
1バイト足りないので、注意して読むといい。
文字型の場合、自動的に改行が付与されるので、
最後の1文字を忘れても結果同じになる、というのが真相っぽい。
OTNの掲示板でそれっぽい議論があった。

http://otn.oracle.co.jp/forum/thread.jspa?threadID=8009792&start=0&tstart=0

私と同じくドツボにはまった方はご参考あれ。
posted by koteitan at 18:26| Comment(0) | TrackBack(2) | Oracle | このブログの読者になる | 更新情報をチェックする

2008年02月28日

おらおら

oracle小ネタ

oracle
char型の範囲   1≦n≦2000
varchar2の範囲  1≦n≦4000

db2
char型の範囲   1≦n≦254
varcharの範囲  1≦n≦32672 (ただし大きいサイズをもつテーブルスペースが必要)

ORA-12560 でSQL*Plusがローカル接続できない時
 windowsなら、サービスが起動しているか確認する

ORA-38301 リサイクルビンのオブジェクトにDDL/DMLをうんたらかんたら
 テーブルのdropは
 drop table [テーブル名];
 purge table [リサイクル名]; ($BIN〜で始まる名前)
 もしくは、一気に
 drop table [テーブル名] purge;


 
posted by koteitan at 15:08| Comment(0) | TrackBack(0) | Oracle | このブログの読者になる | 更新情報をチェックする

2008年02月26日

oracleの悪夢再び

なんで、また、今更oracleの仕事が回ってくるんだ…orz
PL/SQLとかコマンドとかもう覚えてねーよヽ(`Д´)ノ

と言うことで個人的メモ

・SQL*Plusをログイン無しで起動
 sqlplus /nolog
connect as sysdba
uid:pass はデフォだと oracl/oracl

・ユーザー作成
create user [uid] identified by [pass] ;

・なんでもユーザーにチェンジ
grant connect ,dba,exp_full_database,imp_full_database,resource,
to [uid] with admin option;

・テーブル一覧表示
select * from cat;
select * from tab;
select * from user_tables;

・表示結果の数値を32桁表示
set num 32;

┐(´д`)┌
db2も一緒にあるシステムだから、しょっちゅうコマンド間違いまくり。
posted by koteitan at 18:23| Comment(0) | TrackBack(0) | Oracle | このブログの読者になる | 更新情報をチェックする

2006年01月06日

ORA-00904

そんな識別子はない、という意味のOacleエラーである。
またクエリを書き間違ったか、ヘボイのぅ、とVS.NETのデバッガで処理を停止させ、
クエリー発行直前で、OracleCommandのSQLを抽出して、SQLPlusで実行…、



動く?コイツ動くぞ?

Why?

続きを読む
posted by koteitan at 16:56| Comment(0) | TrackBack(0) | Oracle | このブログの読者になる | 更新情報をチェックする

2005年12月27日

[備忘録_Oracle]オラオラ

普段がDB2なだけにたまにOracle使うと、とまどいが大杉。

備忘録的にいろいろ
SQLPlusをコマンドラインで起動し、ローカルOS認証でSYSDBA権限で入るには

sqlplus / nolog
connect / sysdba

SQLPlusで、ユーザーhoge、パスワードhogeで入るには

sqlplus hoge/hoge

SQLPlusでテーブル定義を見るには

DESC tablename

データを全てエキスポートするには
%ORACLEHOME%\binに移動してから、コマンドラインで

exp.exe hoge/hoge file=c:\tmp\hoge.dmp FULL=Y

逆にインポートするには

imp.exe hoge/hoge file=c:\tmp\hoge.dmp FULL=Y ignore=y

特定のテーブルだけなら、それぞれ

exp.exe hoge/hoge file=c:\tmp\hoge.dmp TABLES=hogetbl,hogeeetbl
imp.exe hoge/hoge tables=hogetbl file=c:\tmp\hoge.dmp IGNORE=Y buffer=1000000



posted by koteitan at 17:42| Comment(0) | TrackBack(0) | Oracle | このブログの読者になる | 更新情報をチェックする

2005年12月26日

[備忘録] Oracle10gの導入

うーむ、普・がDB2ばかりなんでわけわからんなぁ…。
参孫になるURLはこれかな。
http://otndnld.oracle.co.jp/beginner/oracle10g/1st/windows/index.html

しかし、重いな、Oracleは… orz

※ローカルOS認他を使うためには

(1)ローカルセキュリティポリシーで、「バッチジョブとしてログオン」のポリシーを
   Oracleのサービスユーザー(グループ)に追加する。
   まぁ、普通はAdmin、ORA_DBAかなぁ。

(2)上記ユーザーが、環境変数%TMP%、%TEMP%に対して遜き込み権限を持つこと
   これもまぁ、Adminなら設定いらんわな

インストール後、なんでもできる便利な人をつくる
ユーザー作成し、
"CONNECT"
"DBA"
"EXP_FULL_DATABASE"
"IMP_FULL_DATABASE"
"RESOURCE"

上記の権限を、adminオプション付きで付与しておく。


posted by koteitan at 16:48| Comment(0) | TrackBack(0) | Oracle | このブログの読者になる | 更新情報をチェックする