ラベル sql の投稿を表示しています。 すべての投稿を表示
ラベル sql の投稿を表示しています。 すべての投稿を表示

2017/02/08

XMLファイルからテーブルへのINSERT

  • Goal

    XMLファイルからテーブルの要素を抜き出して、INSERTしたい。
    SQLServer バージョン

  • How

    xqueryを使って実施。



2017/01/30

特定の文字の間の文字を切り出す - SQL


  • Goal
    文字列から特定の文字の間の文字を抜き出す
    (例)  1234567890123 Hello 0980 982134 1adfllkjasf から1つ目の空白と
       2つ目の空白の間の文字列を抜き出す。
       結果として、Helloだけを抜き出す。
  • Source


2017/01/28

BOM構成表情報を取得するAPI

  • Goal
    BOMPEXPL.EXPLODER_USEREXITを呼び出して、BOM_EXPLOSION_TEMPテーブルに出力させる。APEXのアプリから、EBSのBOM構成表を呼び出したりできる。
    INTENDED BILLの画面と同じ情報を引っ張ってこれる。

  • Sourceサンプル

2017/01/27

オラクル スケジューラー テンプレ

  • Goal
    DBMS_SCHEDULERパッケージを使って、PL/SQLブロックや、プロシージャのスケジュールを作る。Oracle Schedulerを使う。

  • Sourceサンプル
    Sample1 - PLSQLブロックを5時57分から23時57分まで、毎時間流す
    Sample2 - プロシージャを2時間おきに
    流す

  • 参考 Thanks!!
    Oracle Scheduler マニュアル

2016/09/25

1.他のテーブルとのマッチングのやりかた(1列文字列から1行テーブルへ変換)

目次に戻る
APEXでのCHECKBOX(チェックボックス)の取扱

1.他のテーブル(名称マスター)とのマッチングのやりかた
 (1列文字列から1行テーブルへ変換、その後マッチングしてまた1行文字列に戻す)


 Goal ‐ 以下のように、チェックボックスの返り値とマスターをマッチングをする
 #SQLサンプル
  COLUMN FOODS を FUNCTION T_GET_NAME に渡して、名称リストを取得

 #FUNCTION T_GET_NAME のSQL

 
 #解説 - コロン(:)区切りのテキストを1行テーブルへ変換するSQL






2016/09/24

CHECKBOX(チェックボックス)のハンドリング - 目次 - APEX


APEX上でのCHECKBOX(チェックボックス)のハンドリング方法


Table of contents
 
1.他のテーブルとのマッチングのやりかた

  (1列文字列から1行テーブルへ変換)
 2.検索する/フィルターをかける


Background

 APEXでチェックボックスを使う、コロン(:)区切りの文字列で値が帰ってくる。
 それをどう扱うのか?というメモ...

 (例)




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内では、"(ダブルクォーテーション)で囲まれているとそのままの文字列だが、
 囲まれていないと小文字に変換される(らしい)
 結果、アンマッチがおきる


--------------------------------------------------------
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=> 

雑多な1行コマンド&SQLメモ - Postgresql

メモ for Postgresql

‐Postgresql編




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

2016/06/14

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

Data set サンプル - Kaggle

サンプル作成用のデータは、以下から取得

Kaggle - https://www.kaggle.com/


1. TITANIC - タイタニック号の乗客名簿

2. IRIS - アヤメのデータ

2016/05/10

UPSERT のサンプル - データがあればUPDATE、なければINSERT


  • Goal
    データがあればUPDATE、なければINSERTする。
    APEXのダイナミックアクションでの利用を想定しており、ボタンをクリックした際にプロシージャで呼び出して、テーブルのUPSERTをする。
  • How
    Merge文を使う
    COLUMN1-4がキーで、FlagをUPSERTする
     
  • Source

2016/05/06

前年同月比較、前月比較 - 売上日報 SQL


  • Goal
    セールス別に、当月の売上、前年同月、前月を横並びで表示する。レポートのタイミングはオンデマンドを想定しているので、売上明細からSQLで取り出しを行う。
  • How
    1. 月別グルーピング用のフラグを、明細に追加
    2. DECODE文で、必要な値だけサマリー(条件付きサマリー)
    3. GROUP BY ROLLUP で、合計行 を追加
     
  • Source

    #ちょっと今月売上良すぎだけど...

2016/04/28

SQL serverからOracleへのデータ移行時の文字列ハンドリング

SQL Server からOracleDBへのデータ移行時に、改行、TAB、"(ダブルクォーテーション)のハンドリングのサンプル

1.NTEXT型から、VARCHAR型へ変換
2.改行(Carriage Return) は、スペースへ変換
3."(ダブルクォーテーション) は、 シングルクォーテーションに変換


そのあと、文字列カラムを"(ダブルクォーテーション)区切りで出力し、OracleDBへロードする
  • Source




2016/04/23

VIEWのデータが表示されない

  • 状況
    TOADやSQL Developer経由で、OracleEBSデータベースへ接続時VIEWの結果が返ってこない。(ビューは表示されるが、データがない。)
  • 原因
    US設定のOracleEBSに対して、クライアント側NLSの設定がJapanese設定なのが原因
    (NLSの不一致が原因?)
  • Solution
    レジストリ上のNLSの設定を変更する。

    1. 接続先Oracle EBSの設定を確認する



    2.  クライアントの設定をあわせる(自分のPCのレジストリを変更する)
      -1 regedit.exe を起動する

      -2 
    HKEY_LOCAL_MACHINE / SOFTWARE / ORACLE / KEY_OraClient11g_home2
               (クライアントのインストールの仕方に依存)


           -3 "NLS_LANG" を接続先のOracleEBSの設定に合わせる
        "LANGUAGE"_"TERRITORY"."CHARACTER SET"
       
               例:set NLS_LANG = AMERICAN_AMERICA.UTF8



#Resource - Thanks!!

https://www.ibm.com/support/knowledgecenter/SS6QYM_9.1.0/com.ibm.help.foundation.install.doc/t_ConfiguringTheNLS_LANGParameterForAnOracleClient.html

#レジストリの変更はリスクを伴います。自己責任にて実施ください。

PL/SQLからテキストファイルへ出力

UTL_FILEを使ってPL/SQLからテキストファイル出力する場合のサンプルコード。
固定長、CSVともに、SQLで整形して出力可能。

SQLPLUS & SPOOLの代替案。

  • Source



2016/04/01

カラムの定義が変更できない - ALTER TABLEで変更する

SQL serverのテーブル内のカラム定義をMicrosoft SQL server Management Studio で変更しようとするとエラーになる。



その場合は、ALTER TABLEにて変更すること。




2016/03/23

UTL_SMTP のサンプル - PL/SQLからEmail送信

UTL_SMTPを使ってPL/SQLからEmail送信する場合のサンプルコード。
APEXからメールするならAPEX_MAILの方が簡単。

  • Source

2016/03/22

雑多な1行SQLメモ ‐ Oracle - 単語登録用

単語登録して呼び出しているSQLバックアップ

‐Oracle編