Doogie Notes

覚え書き

2018-09-01から1ヶ月間の記事一覧

SQL Server 組織ツリーの出力

共通テーブル式(CTE式)を使った再帰検索 ↓ WITH CTE ( COMPANY_CD , SECTION_CD , SECTION_NAME , PARENT_SECTION_CD , PATH ) AS ( SELECT COMPANY_CD , SECTION_CD , SECTION_NAME , PARENT_SECTION_CD , CONVERT(VARCHAR(100), ISNULL(SECTION_CD, ''))…

SQL Server 統計情報の更新

(統計情報の更新クエリ) USE <データベース名>; GO UPDATE STATISTICS <スキーマ>.<テーブル名> WITH FULLSCAN; GO (統計情報の出力)※上記統計情報の更新を確認する SET NOCOUNT ON; GO SELECT syst.name AS [テーブル名] , syst.object_id AS [テ…

SQLServerのSELECT結果をファイルに出力する

SQLファイルのSELECTクエリの前に「SET NOCOUNT ON」を付けると出力結果ファイルに件数が出力されない。 sqlcmd -S <DBサーバ名> -U <ユーザー> -P <パスワード> -d <DB名> -i <SQLファイルパス> -s, -W -h -1 -o <出力ファイルパス> s:区切文…

DOSバッチ バッチ処理からバッチ処理の呼出し

①「start」呼び出し start呼び出しの場合、別ウィンドウ(別スレッド?)で呼び出される。 呼び出したバッチ処理の終了を待たずに、呼び出し元の処理は続く。 start E:\bat\test.bat 引数1 ②「call」呼び出し call呼び出しの場合、同じウィンドウで呼び出し…

SQL Server インデックス付きビューの作成

(インデックス付きのビューを作成する条件) CREATE VIEW ステートメント実行時、ANSI_NULLSオプションとQUOTED_IDENTIFIERオプションがONに設定されている ビューで参照するベーステーブルの作成時にもANSI_NULLSオプションがONに設定されている ビューが…

JDBCオプションでレスポンス改善

SQL Server Management Studioでは処理速度が速いのに、アプリから実行すると処理速度が遅い場合、JDBCのキャストに問題があることがある。 SQL ServerのJDBCドライバはデフォルトでUnicodeで処理される。 SQL ServerではvarcharがSJIS、nvarcharがUnicodeな…

DOSバッチ 関数の使い方

@echo off setlocal rem タイムスタンプ情報の取得 call :GET_TIMESTAMP rem ログファイル名の設定 set BATCH_LOG=%LOG_DIR%\batch_%DATE_TMP%.log ・ ・ ・ ・ rem 処理開始ログ出力 call :LOG INFO 処理を開始します。 rem 引数の確認 set ARG=%1 if "%ARG…

DOSバッチ SQL呼出し

①ストアドプロシージャ実行 SQLCMD -Q "EXIT(SET NOCOUNT ON;DECLARE @ret int; EXEC @ret=<スキーマ>.<ストアドプロシージャ>; SELECT @ret;)" -o <ログファイルパス> -S <DBサーバ名> -U <ユーザー> -P <パスワード> -d <DB名> ②SQLファイル…

VBScript メール送信ロジック

Option Explicit Const useRemoteSMTPService = 2 Dim objMsg Dim mailServer Dim mailPort Dim message Dim fromAddress Dim toAddress Dim mailBody mailServer = "111.222.333.444" ' メールサーバ(IPアドレス) mailPort = 25 fromAddress = "admin@tes…

VBScript ZIP圧縮ロジック

Option Explicit Dim Fso Dim Shell Dim folder Dim file Dim DateNow Dim ZipFileName Dim ZipFilePath Dim fldrName Dim fileCount Dim EmptyData Dim ZipFolder Dim CompressItem Dim Date400 Dim i 'オブジェクト作成 Set Fso = CreateObject("Scripting…

SQL Server ストアドプロシージャ 実行権限

下記のコマンドを実行して、プログラムが使用しているユーザーに実行権限を付与する。 USE <DB名> GO GRANT EXECUTE ON OBJECT::<スキーマ>.<ストアドプロシージャ名> TO <対象ユーザー> GO 【参考サイト】 blog.itparadise.jp

SQL Server bcpダブルクォーテーション付きエクスポート

①フォーマットファイルの区切り文字にダブルクォーテーションを追加する。 12.0 9 1 SQLCHAR 0 4 ",\"" 1 COMPANY_CD Japanese_XJIS_100_BIN2 2 SQLCHAR 0 100 "\"," 2 COMPANY_NM Japanese_XJIS_100_BIN2 3 SQLCHAR 0 14 "," 3 START_DATE Japanese_XJIS_10…

SQL Server bcpインポート/エクスポート

①フォーマットファイルの作成 https://doogienotes.hatenablog.com/entry/2018/09/05/162708 ②インポート bcp <スキーマ>.<テーブル名> in <インポートファイルパス> -f <フォーマットファイルパス> -e <エラーログパス> -c -C 65001 -S <DBサー…

SQL Server bcpフォーマットファイル作成

文字データ用フォーマットファイルの作成 bcp <スキーマ>.<テーブル名> format nul -c -f D:\work\FMT\company_mst.fmt -t\t -S <DBサーバ名> -U <ユーザー> -P <パスワード> -d <DB名> <引数> format:フォーマットファイル作成指示 nul:デ…

SQL Server ORDER BY付きのVIEW(OFFSET 0)の作成

「OFFSET 0 ROWS」を付与する CREATE VIEW <ビュー名> AS SELECT * FROM COMPANY_MST WHERE COMPANY_CD = '1234' ORDER BY START_DATE OFFSET 0 ROWS ; 【参考サイト】 kino2nd.hatenablog.com

SQL Server ストアドプロシージャ 再帰呼出し

CREATE PROCEDURE <スキーマ>.<ストアド名> @PRM_COMPANY_CD VARCHAR(4) , @RETURN_CD INT OUTPUT AS BEGIN DECLARE @COMPANY_CD VARCHAR(4); DECLARE @COMPANY_NM VARCHAR(100); DECLARE @PROC_RETURN_CD INT; DECLARE CUR_COMPANY CURSOR FOR SELECT C…

SQL Server ストアドプロシージャ 一時テーブルの利用

一時テーブルの種類 ①ローカル一時テーブル 作成したユーザーだけが使用できるテーブル。 ユーザーがセッションを切断すると削除される。 テーブル名の先頭に「#」をつける。 ②グローバル一時テーブル すべてのユーザーが使用できるテーブル。 一時テーブル…

SQL Server ストアドプロシージャのカーソル利用

<フェッチ項目を格納する変数の宣言> DECLARE @COMPANY_CD VARCHAR(4); DECLARE @COMPANY_NM VARCHAR(100); <カーソルの宣言> DECLARE CUR_COMPANY CURSOR FOR SELECT COMPANY_CD , COMPANY_NM FROM COMPANY_MST WHERE KBN = '1' ORDER BY START_DATE ; …

SQL Server ストアドプロシージャ 基本構文

USE <DB名>; GO IF OBJECT_ID(N'<スキーマ>.<ストアド名>') IS NOT NULL DROP PROCEDURE <スキーマ>.<ストアド名>; GO CREATE PROCEDURE <スキーマ>.<ストアド名> @PRM_COMPANY_CD VARCHAR(4) <引数1> , @PRM_COMPANY_NM VARCHAR(100) <引…