
Contents
- 実行環境
- パッケージ追加と
PostgreSQL への接続 - 簡単なクエリ
- テーブル形式に表示する方法が、まだ分からない
- 複文の
SQL は実行できない(R では可能)ほか注意点 - SourceForge.net
が落ちてて Octave-Forge が見れない - 使わなかったけど
Octave の GUI の紹介
実行環境
•GNU Octave

> octave-cli

上が起動時の画面で、R
> octave-cli -h

パッケージ追加と PostgreSQL への接続
GNU Octave> octave-cli -q
octave:■> pkg list % ■は実際は行番号。以下同様
no packages installed.

解凍したうち
octave-4.0.0_0┣ bin ┗ src┗ database-2.3.2.tar.gz

↓
%パッケージインストール . フォルダ作成の警告とか出る octave:■> pkg install ../src/database-2.3.2.tar.gz % パッケージロード . 成功したらメッセージ特になし octave:■> pkg load database

早速データベースパッケージのコマンドで
% データベースに接続 . 成功したらメッセージ特になし
octave:■> conn = pq_connect(setdbopts(
"host", "localhost",
"dbname", "postgres",
"user", "postgres",
"password", "****"));

Octave(と

接続を閉じるのは
octave:■> pq_close (conn);
簡単なクエリ
pq_exec_paramoctave:■> dat = pq_exec_params(conn, > "SELECT * FROM pg_tables LIMIT 10;"); error: __pq_exec_params__: connection not open error: called from pq_exec_params at line 279 column 11

試しに
octave:■> pq_exec_params(conn, "SELECT 1") ans = scalar structure containing the fields: data = { [1,1] = 1 } columns = { [1,1] = ?column? } types = scalar structure containing the fields: name = pg_catalog.int4 is_array = 0 is_composite = 0 is_enum = 0 elements = [](0x0)

現在時刻を
octave:■> pq_exec_params(conn, "SELECT now()") ans = scalar structure containing the fields: data = { [1,1] = 490808882284000 } columns = { [1,1] = now } types = scalar structure containing the fields: name = pg_catalog.timestamptz is_array = 0 is_composite = 0 is_enum = 0 elements = [](0x0)

コンソールの文字列は
octave:■> pq_exec_params(conn, "SET client_encoding TO 'SJIS'"); octave:■> pq_exec_params(conn, "SET lc_time TO 'Japanese'"); octave:■> pq_exec_params(conn, "SELECT to_char(now(), 'TMDay')") ans = scalar structure containing the fields: data = { [1,1] = 水曜日 } columns = { [1,1] = to_char } types = scalar structure containing the fields: name = pg_catalog.text is_array = 0 is_composite = 0 is_enum = 0 elements = [](0x0)

テーブル形式に表示する方法が、まだ分からない
テーブルがどんな風に表示されるか試したら、[octave: > dat = pq_exec_params(conn, "SELECT * FROM pg_tables LIMIT 10;"); % 変数に入れる文で最後にセミコロン付けると結果表示せず、付けないと表示 octave: > dat dat = scalar structure containing the fields: data = { [1,1] = pg_catalog [2,1] = pg_catalog [3,1] = pg_catalog [4,1] = pg_catalog [5,1] = pg_catalog [6,1] = pg_catalog [7,1] = pg_catalog [8,1] = pg_catalog [9,1] = pg_catalog [10,1] = pg_catalog [1,2] = pg_statistic [2,2] = pg_type [3,2] = pg_authid [4,2] = pg_user_mapping [5,2] = pg_attribute [6,2] = pg_proc [7,2] = pg_attrdef [8,2] = pg_constraint [9,2] = pg_index [10,2] = pg_operator [1,3] = postgres (以下略)

ページャの動作もよく分からない所があり、常にコンソール下端までいっぱいに表示されるかというとそうでもなく、下のように途中で次頁に送られたりしました。

複文の SQL は実行できない(R では可能)ほか注意点
先ほど、SEToctave: > pq_exec_params(conn, "SELECT 1; SELECT 2") error: __pq_exec_params__: fatal error: ERROR: cannot insert multiple commands into a prepared statement error: called from pq_exec_params at line 279 column 11

複文
octave: > pq_exec_params(conn, "SELECT 1; error: unterminated character string constant parse error: syntax error >>> pq_exec_params(conn, "SELECT 1; ^

ちなみに
> library(RPostgreSQL) > con = dbConnect(PostgreSQL(), host='localhost', ...) > dbGetQuery(con, 'SELECT 1; SELECT 2; SELECT 3') ?column? 1 3 > > dbGetQuery(con, 'SELECT 1; + SELECT 2; + SELECT 3; + ') ?column? 1 3

あと、データベースパッケージと関係なく
SourceForge.net が落ちてて Octave-Forge が見れない
このデータベースを含む
使わなかったけど Octave の GUI の紹介
Octave 4.0
初めて



↓ 最初の起動時。各ペインは


↓ 編集メニューから設定変更でき、いろいろ項目がありましたが最初にシステムドライブに作成した設定ファイルは動かせない模様。このへんで、GUI

