テストケースを考えるときに組み合わせを頭ですべて考えるのは、過剰になりすぎたり、過不足になったりと、本当に正式なパターンが洗い出されているのか不安ではないかと思う。 そういうときにデカルト積により、テストパターンの組み合わせを網羅できれば、…
START SYSDBA権限を付与されたユーザーのみ可能。1.SHUTDOWN インスタンスの停止2.NOMOUNT インスタンスの起動、初期化パラメータファイルの読み込み インスタンスが起動されるということは、SGA、バックグラウンドプロセスも有効になる。3.MOUNT 制御ファイ…
インストールして使おうとしたら、11gと違って、デフォルトでPDBが設定されていた。最初はユーザーすら作成できないので、いろいろ設定を行うことに・・・ 1.最初にやるべきは、SYSユーザーでPDBに切り替えなければいけない。 /* Oracle 18C ExpressEdition…
会社の数値って考えるほど複雑でわけわからなくなりがちだが、 少なくとも損益計算書(PL)に関しては知っておいた方がいいと思う。 開発者なら、原価と売上に対しての売上総利益が身近になると思うけど、 リーダー、マネージャークラスだと営業利益、経常利…
今の時代は新人の教育は非常に難しいところがあるかもしれない。 ただ、新人本人はたいていはやる気があるので、やる気を削ぐようなことをやらないようすればいいと思う。 でも、口頭で言うには簡単なことだけど、実際は難しい。 個人的には以下のことを考え…
いろんな作業(タスク)があると思う。 その中で、どのようにタスクを処理していくかは、人それぞれだと思うけど、 参考程度にタスクの整理方法をフリーハンドで書いておいた。 もちろん、誤字や間違えたところは斜線が引いてある、恥ずかしいものではあるけ…
読みにくいかもしれないが貼っておこう。テーブル設計をするときは、日常運用で想定されるトランザクション数およびデータ件数を考えて行うが、 データの格納パターンも考えて、カーディナリティや頻繁に実行される検索条件も想定しておかないと、 インデッ…
フリーソフトのWINMERGEというソフトでよくテキストの比較を行うことがよくあるけど、 コマンドプロンプトでも比較するコマンドがある。それがFCというコマンド C:\Users\owner>fc /? 2 つのファイルまたはファイル セットを比較し、相違点を表示します。 FC…
過去に自分がプロジェクトを促進していたときに まとめていたやつ。アジャイル開発なんだけど、それに細かくいろいろ役割を決めて、ぐるぐるスケジュールを回してく手法。 それがスクラム開発。字汚いのは勘弁したいところだけど、 システムの早い変化には対…
タイトルの表現がちょっとよく分からなかったら申し訳ないのだが、 よく、WEBとかで〇〇件中、XX~YY件とかって分けて表示することがあると思う。 今回はその総件数の中で、どのページにどこからどこまでのデータを何件表示されるかという計算ロジックを作っ…
さすがにそのままの仕様を実現することはできなかったが、 かろうじてそれに近いものを公開しようと思う。今回使用しているTYPEは以下を参照 fubukin.hatenablog.com create or replace FUNCTION SPLIT_REC ( /* 引数: STR :区切り文字の入った文字列 STR_SP…
昔の話だけど、ImageMagickというオープンソースを使ってPDFの変換を試みたことがある。 しかし、リファレンスが全く無かったのと、メモリリークが起こってしまい断念した。 今はImageMagickではなく、Magick.NETっていうオープンソース用のライブラリが公開…
ウォータフォール型とアジャイル型、 どちらが生産性が良いものかと聞かれても、それは一概には言えない。 プロジェクト規模や分野等に左右されてしまうものなので、どんな開発計画であっても柔軟に計画を考えて行くことが必要。 しかし、開発モデルを基盤と…
書名:ソフトウェア技術者の職業性ストレス 著者:藤垣裕子 発行:労働科学研究所出版部 これはかなり昔の本だけど、その古書を読んだことがあるので簡単に書いておく 一般に言われている開発工程としては以下のような工程がある。 ①要件定義 ②基本設計 ③詳…
正規表現でのチェックは、正規表現自体を理解していれば 非常に有用且つ開発が楽になる。 ただ、基本的にはサーバーサイドで使用することは あんまり良くない。 その理由として、 バックトラッキング(文字のチェック等が構文によって最初からやり直されるこ…
RAISE_APPLICATION_ERRORという関数を使えば、 エラーコードの割り当てとメッセージを指定することができる。 ただし、ユーザー定義のエラーとして使用が許可されている番号は -20000〜-20999 までの 1000 コード分らしい。 トリガーで例外エラーとして処理…
Oracle11gからの新しい機能。 基本的に行トリガーは自分自身のレコードを更新することはできない。 でも、複合トリガーを使うとそんなことができてしまったりする。 これは便利ではあるが、開発では非機能要件をしっかり考慮しておかないと 運用でかなり危な…
AndroidとiOSの開発を行っていた時に、 どんな端末でも使えるようにというコンセプトで WEBブラウザを使用してアプリケーション開発を行ったことがあった。スマートフォンがまだ普及していなくて ちょうど、iPadが話題になってたときだった。そのときに開発…
サーバーのメモリを消費する分、 30%くらい処理速度が向上するらしい。サーバーのスケールアップを考えた上で、 考慮したいところ。 /*常にネイティブコンパイルを行うように設定を変更する*/ ALTER SYSTEM SET PLSQL_CODE_TYPE = NATIVE; / /*以下、限定的…
一個ずつやるよりは良いのではないかと思う。 BEGIN DBMS_STATS.GATHER_SCHEMA_STATS ( OWNNAME => 'スキーマ名(ユーザー)' ,OPTIONS => 'GATHER' ) ; END;
接続セッションの状態を確認するSQL ACTIVEセッションが一つ増えるけど、実行している自分になるので気にしないでおこう SELECT TO_CHAR(SYSDATE,'yyyy/mm/dd HH24:MI:SS'), S.STATUS, S.USERNAME, NVL(S.SQL_EXEC_START,S.PREV_EXEC_START), S.LAST_CALL_ET…
オブジェクト一覧 SELECT OBJECT_NAME ,PROCEDURE_NAME ,OBJECT_TYPE ,AGGREGATE ,PIPELINED ,PARALLEL ,INTERFACE ,DETERMINISTIC ,AUTHID FROM USER_PROCEDURES --WHERE OBJECT_NAME IN ('TEST') ORDER BY OBJECT_NAME,PROCEDURE_NAME オブジェクト引数一…
必要なオブジェクトだけ欲しい場合は、コメントのところで条件を指定する SELECT T.TABLE_NAME AS "テーブル物理名", TC.COMMENTS AS "テーブル論理名", T.tablespace_name AS "テーブルスペース名", C.COLUMN_ID AS "カラムID", CASE WHEN PK.COLUMN_POSITI…
DB移行したいときとかに 使ってみるといいかもしれない。ただ、ここで紹介する呼び出しはvbscriptでADODB使ってるので その環境がない人は別の接続方法で試してほしい。「SQL_DDL.vbs」として以下のソースコードをDB接続先情報を記述して保存する Option Exp…
コマンドプロンプトでファイル数を確認する サブディレクトリは見ないやつ。 SET /a FILES=0 FOR %%a in (C:\tmp\*) DO (SET /a FILES=FILES+1) ECHO %FILES% PAUSE DIRコマンドをC:\tmp\*の部分に入れて工夫すれば、サブディレクトリのファイル数も取れるか…
DBMS APIを使って、CSVの出力するようなファンクションを作ってみた。SQL文を引数にして、テキストが吐き出せるので 何かしら便利に使えそうだとは思っている。とりあえず、適当な型を用意しよう。 CREATE OR REPLACE TYPE STD_VALUE4 AS OBJECT ( VALUE01 V…
SQL文字列を引数にして、そのSQL文字列のテーブル構成情報を出力する。 既存プログラムのSQLのフィールド解析とかで使えそう。まずは型を適当に作成 CREATE OR REPLACE TYPE VALUE10 AS OBJECT ( VALUE01 VARCHAR2(500), VALUE02 VARCHAR2(500), VALUE03 VAR…
ダミーのようなテーブルをあらかじめ作成して テーブルにデータが追加、更新、削除が行われたとき、 そこに変更ログを記録するようなことができると、 更新以前の状況の更新過程が分かるようになるので便利かもしれない。そんなダミーテーブルの作成と、更新…
DBA権限持ってるユーザーから実行しないとできないと思うけど、 とりあえずユーザーを作成する動的SQLを載せておこうと思う。 権限設定とかいろいろ面倒なので、テスト環境で実行するときなどは考えなくて済むのではないかと思う。 CREATE OR REPLACE PROCED…
TYPEとかの最初の設定は以下の記事を参照にしてください。 fubukin.hatenablog.com フェッチしてバルクバインドするときにリミット値を指定して、 数件ずつデータを出力する方法をとったら、分散処理されて早くなるのだろうか?ただ、実績としては何万という…