システムの内製を推進したいと思い購入。
やはり、内製がいいんじゃないかと、内製を勧めている本をよんで改めて思う。
内製押しの本なので、良いこと書いてあるに決まっているのだが、こちらが正解ではと思う。
開発・改良の切り札 システム内製を極める
Oracle Application Express Notes | Apps development Notes | Google Cloud Platform | Python | apps test | Cool Beans | English | Books
2016/12/02
2016/11/03
2016/11/01
SSISを使って、CSVをSQL Serverへロードしようとしたらエラー
- Issue
SSIS(SQL Server Integration Services)を使って、CSVをSQL serverへロードしようとしたらエラー
SSIS(SQL Server Integration Services)を使って、CSVをSQL serverへロードしようとしたらエラー
- 原因
カラム定義 varchar()を、nvarchar()に変更する。
(テーブルのDROPが必要。)
(テーブルのDROPが必要。)
2016/10/31
インタラクティブレポートの条件付き書式(背景色を変える) その2 - APEX
- Goal
以前の記事だと、リンク付きのセルの場合色が変わらないことが発覚!!
なのでリンク付きのセルの場合でも変更できる方法がこれ。
インタラクティブレポートにおいて、セルの背景色を条件に応じて変更する。
(As is) リンク付きのセルは以下のようにセルの色が変わらない。。。
- How
1. ソースを見れば、タグTDに、Style属性がセットされていない。なので、動的アクションでの、JAVASCRIPTが原因…
2. jQueryでの親属性の取得方法を変更する。動的アクションのJavascriptをparent() から、closest()へ変更する。
3. インタラクティブレポートの列属性の設定を変更する(リンク付きの列のみ)
以下が、結果。画像の背景が白なのは、別の問題…。
2016/10/28
javascriptで他のページにリンクする - 動的アクション - APEX
- Goal
ボタン押下時に、WEBDAVのフォルダ内のPDFファイルを立ち上げる
その時に、テキストボックス(SELECTリスト)の値を引数として使う
(例) Openボタンをクリックしたら、テキストボックスの "文字列.pdf" を開く
これは、12345.pdfを開いたイメージ
- How
ボタンにダイナミックアクションを設定し、Javascriptで開く
ダイナミックアクションのJavascriptの例は以下の通り
ラベル:
APEX,
Javascript,
Oracle application express,
仕事,
動的アクション
2016/10/27
SSIS (SQL SERVER Integration Services) にアクセスできない
SSIS (SQL SERVER Integration Services) にアクセスできない
- 解決方法
SQL Server Management Studio を アドミンモードで立ち上げる
##実にしょーもないけど、解決に1時間以上かかった。情けない。
- 解決方法
SQL Server Management Studio を アドミンモードで立ち上げる
##実にしょーもないけど、解決に1時間以上かかった。情けない。
2016/09/25
2016/09/24
CHECKBOX(チェックボックス)のハンドリング - 目次 - APEX
APEX上でのCHECKBOX(チェックボックス)のハンドリング方法
Table of contents
1.他のテーブルとのマッチングのやりかた
(1列文字列から1行テーブルへ変換)
2.検索する/フィルターをかける
Background
APEXでチェックボックスを使う、コロン(:)区切りの文字列で値が帰ってくる。
それをどう扱うのか?というメモ...
(例)
ラベル:
APEX,
Dev Tips,
Oracle application express,
Oracle DB,
sql
2016/09/23
インタラクティブレポートのセルをクリック時にポップアップを立ち上げる - APEX
- Goal
インタラクティブレポートにおいて、セルのクリック時にポップアップ画面を立ち上げる。
(例) Name をクリックしたら詳細をポップアップで表示する。
- How
1. インタラクティブレポート → レポート属性 → 列属性 → 列リンク
ターゲット = URL
URL に Javascript を貼り付ける
&APP_ID.に違うAPP_ID を指定して飛ばす事もできる
2. (追記)IEだと、POPUP表示時に、元の画面の情報が消えるエラーが発生!
「void(0);」を追記すると解消する
- Reference
#データセット
Titanic: Machine Learning From Disaster
#アイコン
フリーアイコン
2016/09/21
リージョンタイトルの書式設定 - APEX
- Goal
リージョンのタイトルの書式を変更する。文字を大きくしたり、色を変更する。
(To be 例) USER_ID を追加し、文字を大きくして、太字+色を赤色に変更した例
- As is
変更前はこんな感じ
- How
1. リージョン定義 → タイトル に HTMLを埋め込む。変数も追加できる。
サンプル
&APP_USER. はログインユーザーIDを意味する変数
2016/08/12
インタラクティブレポートの条件付き書式(背景色を変える) - APEX
- Goal
インタラクティブレポートにおいて、セルの背景色を条件に応じて変更する。
(To be 例) セルの書式を動的に以下の条件で設定する。
Fare < 30 緑色
30 <= FARE < 50 黄色
50 <= FARE < 70 ピンク色
70 <= FARE 赤色+白抜き文字+太字
- As is
変更前はこんな感じ
- How
1. セルの書式を格納するダミーカラムを、インタラクティブレポート内のSOURCEで作成する。レポート属性の列属性は、"非表示"とする。
今回は、"FARE_COLOR"というカラムを追加。
2. カラム"FARE"の書式を設定する。
列属性: FARE > 列の書式 HTML式に以下をセットする。
3. 動的アクションで、Javascriptを実行。
- Reference
#全般
TBD - APEX and other things
#データセット
Titanic: Machine Learning From Disaster
#アイコン
フリーアイコン
2016/08/04
RTFファイル内のタグ名が になる - BI Publisher
- 状況
Oracle EBSから、XMLPublisherを使ってレポートを取り出す際に、TemplateとしてRTFファイルを作成する。その時、RTFファイルが、XML内のタグ名を正しく保持していないため、レポートが作成されない。(XMLで出力される。)
- 原因
BI Publisher のセッティングの問題
#BI Publisher Desktop 11.1.17.150120 - Solution
BI Publisherタブの右端の Optionsを開き、Field Labelsを”XML Tag Name"にする
2016/07/09
同一グループ内の1件目を抜き出す SQL
- Goal
同一グループ内の一番上のレコードだけをSQLで抜き出す。
例えば、売上明細から品番別の最も売上件数が多かった年月を抜き出す。
アウトプットは、<品番>、<最も売上が上がった年月>、<その年月の売上件数> - How
1. 月別に売上件数をサマリー
2. ROW_NUMBER()で、一番売上件数が多かった月に'1'をセット
3. ROW_NUMBER()が'1'だけを抜き出す
- Source
2016/06/26
オブジェクトの名称はすべて小文字にしておくこと - Postgresql
"Postgresqlでは、オブジェクト(テーブル名、カラム名)の名称はすべて小文字にすること"
-理由
DB内には、大文字・小文字で区別して登録される
SQL内では、"(ダブルクォーテーション)で囲まれているとそのままの文字列だが、
囲まれていないと小文字に変換される(らしい)
結果、アンマッチがおきる
-理由
DB内には、大文字・小文字で区別して登録される
SQL内では、"(ダブルクォーテーション)で囲まれているとそのままの文字列だが、
囲まれていないと小文字に変換される(らしい)
結果、アンマッチがおきる
--------------------------------------------------------
testdb=> \d iris
Table "public.iris"
Column | Type | Modifiers
---------------+-----------------------+-----------
Id | integer | not null
SepalLengthCm | numeric(15,2) |
SepalWidthCm | numeric(15,2) |
PetalLengthCm | numeric(15,2) |
PetalWidthCm | numeric(15,2) |
Species | character varying(20) |
Indexes:
"iris_pkey" PRIMARY KEY, btree ("Id")
testdb=> select * from iris where SepalLengthCm > 5.0; -> ダメ
ERROR: 列"sepallengthcm"は存在しません
LINE 1: select * from iris where SepalLengthCm > 5.0;
^
HINT: Perhaps you meant to reference the column "iris.SepalLengthCm".
testdb=> select * from iris where "iris.SepalLengthCm" > 5.0;->ダメ
ERROR: 列"iris.SepalLengthCm"は存在しません
LINE 1: select * from iris where "iris.SepalLengthCm" > 5.0;
^
testdb=> select * from iris where "SepalLengthCm" > 5.0; -> OK
testdb=> select * from iris where iris."SepalLengthCm" > 5.0; -> OK
testdb=>
2016/06/25
Virtualbox上のUbuntu16.4にPostgresql 9.5をインストールする
MACのVirtualbox上のUbuntu16.4にPostgresql9.5をインストールする。
以下のSTEPをサーバー上で行う。(SSHでも可能)
#1# インストール
#2# Postgresqlを開始する
#3# postgresの初期パスワードを設定する
#4# postgres でログインして、DB作成と別userでもログインできるようにする
#5# クライアントからの接続を許可する
## pg_hba.confのセッティングについては、以下参考
-postgresqlのページ
https://www.postgresql.jp/document/9.5/html/auth-pg-hba-conf.html
以下のSTEPをサーバー上で行う。(SSHでも可能)
#1# インストール
#2# Postgresqlを開始する
#3# postgresの初期パスワードを設定する
#4# postgres でログインして、DB作成と別userでもログインできるようにする
#5# クライアントからの接続を許可する
## pg_hba.confのセッティングについては、以下参考
-postgresqlのページ
https://www.postgresql.jp/document/9.5/html/auth-pg-hba-conf.html
2016/06/17
2016/06/14
インターネットからの開発者サイトへのアクセスを禁止する - APEX
- 状況
インターネットからの開発者サイトへのアクセス時、ログイン画面が表示される。そのアクセスに対して、403エラーを返す。また、イントラ向けアプリとインターネット向けアプリが混在している場合、インターネットからのイントラ向けアプリへのアクセスに対して、403エラーを返す。
以下の画面をインターネットから表示させない。
- Solution
mod_rewrite でコントロールする。
(例) - APEX 4.2.x + OHS を想定
開発者向け画面(アプリケーション番号は、四千番台:4xxx)と1で始まるアプリケーション番号(1xxx)へのインターネットからのアクセスを403リダイレクトする。
1. HTTP 接続の場合 - httpd.conf ファイルに以下を追記する
RewriteEngine on
RewriteCond %{QUERY_STRING} ^p=1 [OR]
RewriteCond %{QUERY_STRING} ^p=4
RewriteRule ^(.*) - [F]
2. HTTPS接続の場合 - ssl.conf ファイルのvirtualhost内に上記を追記する。
(注) mod_osslが利用できるようになっていることを確認する。
ssl.conf のサンプル
変更後 のイメージ
ラベル:
apache,
APEX,
OHS,
Oracle application express
buffer overflow. Use SET command to reduce ARRAYSIZE or increase MAXDATA.
- 状況
SQL*PLUS でSQL実行時に、エラーメッセージ”buffer overflow. Use SET command to reduce ARRAYSIZE or increase MAXDATA.”が表示される。
環境 ー 古いんです (^^;
SQL*Plus: Release 3.3.4.0.0 - Production on Mon Jun 13 10:56:36 2016
Copyright (c) Oracle Corporation 1979, 1996. All rights reserved.
Connected to:
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
With the Partitioning option
JServer Release 8.1.7.4.0 - Production
SQL> select * from v$version;
BANNER----------------------------------------------------------------Oracle8i Enterprise Edition Release 8.1.7.4.0 - ProductionPL/SQL Release 8.1.7.4.0 - ProductionCORE 8.1.7.0.0 ProductionTNS for Solaris: Version 8.1.7.4.0 - ProductionNLSRTL Version 3.4.1.0.0 - Production - Solution
SQL> SET ARRAYSIZE 1
上記を実行の上、SQLを実行する。
2016/06/09
カラムの幅を固定する - インタラクティブレポート - APEX
- Goal (APEX 5.x 向け、4.xは別の方法)
インタラクティブレポートにおいて、カラムの幅を固定する。
改行して2行表示にならないようにする。
- How
1. インタラクティブリージョンに、静的IDを設定する
2. 幅を変更したいカラムに、静的IDを設定する
3. ページのCSS インラインに以下を追加する
- To be
以下のように拡がる
インタラクティブレポートのセルに画像/アイコンを入れる(リンク 無、動的アクション 無) - APEX
- Goal
インタラクティブレポートにおいて、セルの中身を画像に変更する。
リンク 無し、動的アクション 無しで、単に画像が表示されるだけ。
フィルターは文字列で検索ができる。
(To be 例) 性別をアイコンで表示する。
Icon by http://www.fatcow.com/free-icons
フィルターはこんな感じ
- As is
変更前はこんな感じ
- How
0. 共有コンポーネント > 静的アプリケーションファイル に、アイコンをUPLOADする。
その時に、ファイル名を項目の名前と一致させておく。
この場合は、"male" と "female"。
1. リージョン: インタラクティブレポート で 対象の列を選び、
指定 > タイプ: リンク
リンク > ターゲット: タイプ = "URL"
URL = "#"
リンクテキストを以下にする
- Reference
#全般
Jari's APEX blog
#データセット
Titanic: Machine Learning From Disaster
#アイコン
フリーアイコン
2016/05/10
7.初回ログイン時、パスワード変更画面へリダイレクト :APEX ID/PASSWORD認証機能 - カスタム編 -
- Steps
7. 初回ログイン時、パスワード変更画面へリダイレクト
-Home画面のロード時にパスワード変更画面へリダイレクトさせる
-初回ログインかどうかは、PWD_EXPIREで判定
#HOME画面にProcessを追加
#Source :OWA_UTILのリダイレクトを使う
UPSERT のサンプル - データがあればUPDATE、なければINSERT
- Goal
データがあればUPDATE、なければINSERTする。
APEXのダイナミックアクションでの利用を想定しており、ボタンをクリックした際にプロシージャで呼び出して、テーブルのUPSERTをする。 - How
Merge文を使う
COLUMN1-4がキーで、FlagをUPSERTする
- Source
2016/05/06
6.パスワード変更画面の作成 その3 :APEX ID/PASSWORD認証機能 - カスタム編 -
- Steps
3.ボタン押下時のプロセスの追加
#ボタンには、”ページの送信”の設定のみ
#データベースアクションはなし
#ページ送信後のプロセスで、FUNCTION CHGPWD を呼び出す
(3.PASSWORDを変更するFUNCTION で作成)
登録:
投稿 (Atom)