SQLの窓

2024年08月08日


SQLServer の BCP で INT IDENTITY 列に csv からリストアする

bcp ユーティリティにおいて、-E オプションで可能になります。

▼ -E の説明
インポートしたデータ ファイルの ID 値 (複数可) を ID 列に使用することを指定します。 -E を指定しない場合、インポートされるデータ ファイルのこの列の ID 値は無視され、SQL Server はテーブルの作成時に指定されたシードと増分の値に基づいて、一意の値を自動的に割り当てます。

出力
bcp.exe DB名..[出力テーブル名] out "c:\TMP\data.csv" -c -t , -U sa -P

入力
bcp.exe DB名..[入力テーブル名] in "c:\TMP\data.csv" -e "c:\TMP\error.log" -c -t , -E -U sa -P
この環境では、パスワードは空文字です。
データにカンマが含まれる場合は、区切り文字を変更します。( -t , )



posted by lightbox at 2024-08-08 11:20 | SQLExpress | このブログの読者になる | 更新情報をチェックする

2024年08月06日


MySQL に PIPES_AS_CONCAT を設定して、CSV を出力する SQL

Windows で、XAMPP を使用している場合、my.ini がありますが、その中の設定で sql_mode と言うエントリがあるので、そこに PIPES_AS_CONCAT を追加します。
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT
そのうえで、以下のような SQL を作成して実行します。
select

社員コード||','||氏名||','||フリガナ||','||所属||','||性別||','||作成日||','||更新日||','||給与||','||手当||','||管理者||','||生年月日 from 社員マスタ

into OUTFILE 'C:\\TEMP\\syain.csv'
※ データ内に NULL 値が無いようにする必要があります( または SQL で関数を使うか )
※ csv の二度目の上書きはできません


関連する記事

PL/SQL : 最も簡単な CSV 出力 の記述


posted by lightbox at 2024-08-06 09:50 | MySQL | このブログの読者になる | 更新情報をチェックする

Chrome ポリシー : レジストリ : ( ChatGPT 解説 )

以下のレジストリの効果を解説してください
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"ShowHomeButton"=dword:00000001
"AutofillAddressEnabled"=dword:00000000
"HomepageLocation"="https://www.google.com/"
"BrowserThemeColor"="#FFFFFF"
"PromptForDownloadLocation"=dword:00000001
"AutofillCreditCardEnabled"=dword:00000000
"ShowAppsShortcutInBookmarkBar"=dword:00000000
"HomepageIsNewTabPage"=dword:00000000
"PasswordManagerEnabled"=dword:00000000
"TaskManagerEndProcessEnabled"=dword:00000001
"TranslateEnabled"=dword:00000001
"BrowserAddPersonEnabled"=dword:00000000
"NTPCustomBackgroundEnabled"=dword:00000000

  • このレジストリキーと値は、Google Chromeの特定の機能の動作を制御するためのものです。それぞれの値の意味を以下に説明します。
    1. ShowHomeButton
      ホームボタンをブラウザのツールバーに表示するかどうかを指定します。dword:00000001 はホームボタンが表示されることを意味します。
    2. AutofillAddressEnabled
      自動入力機能で住所の自動入力が有効かどうかを指定します。dword:00000000 は無効であることを示します。
    3. HomepageLocation
      ホームボタンをクリックしたときに開かれるホームページのURLを指定します。ここでは https://www.google.com/ です。
    4. BrowserThemeColor
      ブラウザのテーマカラーを指定します。#FFFFFF は白色です。
    5. PromptForDownloadLocation
      ダウンロードするファイルの保存場所を指定するようにユーザーにプロンプトを表示するかどうかを指定します。dword:00000001 はプロンプトを表示することを意味します。
    6. AutofillCreditCardEnabled
      自動入力機能でクレジットカードの自動入力が有効かどうかを指定します。dword:00000000 は無効であることを示します。
    7. ShowAppsShortcutInBookmarkBar
      ブックマークバーにアプリのショートカットを表示するかどうかを指定します。dword:00000000 は表示されないことを意味します。
    8. HomepageIsNewTabPage
      ホームページが新しいタブページであるかどうかを指定します。dword:00000000 は新しいタブページではないことを意味します。
    9. PasswordManagerEnabled
      パスワードマネージャーが有効かどうかを指定します。dword:00000000 は無効であることを意味します。
    10. TaskManagerEndProcessEnabled
      タスクマネージャーでプロセスを終了する機能が有効かどうかを指定します。dword:00000001 は有効であることを意味します。
    11. TranslateEnabled
      翻訳機能が有効かどうかを指定します。dword:00000001 は有効であることを意味します。
    12. BrowserAddPersonEnabled
      ブラウザで新しいユーザープロファイルを追加できるかどうかを指定します。dword:00000000 は追加できないことを意味します。
    13. NTPCustomBackgroundEnabled
      新しいタブページでカスタム背景画像が使用できるかどうかを指定します。dword:00000000 は使用できないことを意味します。
  • これらの設定により、特定の機能がユーザーの希望やポリシーに応じて有効または無効にされます。
  • 
    
    
    
    posted by lightbox at 2024-08-06 08:38 | Google Chrome | このブログの読者になる | 更新情報をチェックする

    PL/SQL : 最も簡単な CSV 出力 の記述

    CSV イメージを最初から SQL で作成しておいて、取りだすデータが 1つの列にしておく事で高速な処理が可能になります
    
    CREATE OR REPLACE PROCEDURE LIST_MEMBER
    (
    	/* カーソルの範囲指定用  */
    	PM_STRING IN VARCHAR2
    )
    
    /**********************************************************/
    /* 変数の定義 */
    /**********************************************************/
    AS
    	WK_VALUE	VARCHAR2(2000);
    
    	/* カーソルの定義(主に複数読み込み用)  */
    	CURSOR cur_main IS
    		SELECT
    			社員コード||','||
    			氏名||','||
    			フリガナ||','||
    			所属||','||
    			性別||','||
    			作成日||','||
    			更新日||','||
    			給与||','||
    			手当||','||
    			管理者||','||
    			生年月日
    			from "社員マスタ"
    		where 社員コード <= PM_STRING;
    
    	-- ディスクへ書き込むファイル名
    	WK_FILENAME VARCHAR2(100) := 'syain.csv';
    	-- ファイルにアクセスする為のハンドルの定義
    	FILEHANDLE UTL_FILE.FILE_TYPE;
    
    /**********************************************************/
    /* 処理開始 */
    /**********************************************************/
    BEGIN
    	DBMS_OUTPUT.PUT_LINE('デバッグ:開始');
    	DBMS_OUTPUT.PUT_LINE('デバッグ:引数:'||PM_STRING);
    
    	/* カーソルを開く */
    	OPEN cur_main;
    
    	-- 第一引数は、ディレクトリオブジェクトの名称( 但し文字列 )
    	FILEHANDLE := UTL_FILE.FOPEN( 'MYDIR', WK_FILENAME, 'w' );
    
    	/* ループ処理(ブロック) */
    	LOOP 
    		/* 定義したレコード変数に読み込み */
    		FETCH cur_main INTO WK_VALUE;
    		/* カーソルに対するシステム変数でデータ終わりを判断 */
    		if cur_main%NOTFOUND then 
    			/* ループ処理を脱出 */
    			EXIT; 
    		end if; 
    
    		-- 書き込み
    		UTL_FILE.PUT_LINE(FILEHANDLE,WK_VALUE);
    	 
    	END LOOP; 
    
    	-- ファイルを閉じる
    	UTL_FILE.FCLOSE( FILEHANDLE );
    
    	/* カーソルを閉じる */
    	CLOSE cur_main;
    
    /**********************************************************/
    /* 一番外側のブロックの例外処理 */
    /**********************************************************/
    $if 1=1 $then
    EXCEPTION
    	WHEN OTHERS THEN
    		DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
    $end
    END;
    
    
    
    
    
    
    posted by lightbox at 2024-08-06 00:18 | Oracle : PL/SQL | このブログの読者になる | 更新情報をチェックする

    2024年08月05日


    VBScript を『管理者として実行する』には、Shell の runas ( 右クリックメニューの実行と同等 ) で実現します / Jscript も追加

    VBScript を『管理者として実行する』には、以下の内容ををスクリプトの先頭に記述します
    
    

    🔻 VBScript

    Set obj = Wscript.CreateObject("Shell.Application")
    if Wscript.Arguments.Count = 0 then
    	obj.ShellExecute "wscript.exe", WScript.ScriptFullName & " runas", "", "runas", 1
    	Wscript.Quit
    end if
    
    Wscript.Echo "ここは管理者権限で実行されます"
    
    
    
    

    🔻 Jscript

    ※ Jscript は WScript 等、大文字小文字の区別があるので注意です。
    var obj = new ActiveXObject("Shell.Application");
    if ( WScript.Arguments.length == 0 ) {
    	obj.ShellExecute( "wscript.exe", WScript.ScriptFullName + " runas", "", "runas", 1 );
    	WScript.Quit();
    }
    
    WScript.Echo( "ここは管理者権限で実行されます" );
    
    
    Shell.ShellExecute method
    
    これは、VBScript から利用可能な Shell の機能を使って、右クリックメニューにある『管理者として実行』を実行する方法です。ここでは日本語では無く runas と言う文字列を使って管理者として実行させています。
    
    但し、引数がなかった場合の処理としては処理終了します。ですからこのスクリプトでは、引数をダミーで一つセットして( この場合一つめの runas がそうです )自分自身を再度呼び出しています。
    
    つまり、Windows からすれば二度目の実行が管理者としての実行になります。
    
    この場合は、スクリプトに引数を渡す事ができません。もし渡したい場合は、違ったトリックを使う必要があるのに注意して下さい。(その場合は、外部ファイルから入力するのがもっとも簡単で確実だと思います)
    
    
    
    
    
    
    
    posted by lightbox at 2024-08-05 12:10 | VBS + Shell | このブログの読者になる | 更新情報をチェックする

    fake sendmail for windows を使って、PHP でごく普通に( mb_send_mail で )メール送信

    fake sendmail は、XAMPP に同梱されています
    
    メールサーバは、フリーメールで可能で、簡単な設定で利用できます。以下のサンプルは、さくらインターネット で動作確認しました。
    
    ▼ 手順
    
    ダウンロード
    
    配布元より、sendmail.zip をダウンロードして、解凍します。
    ( XAMPP には sendmail フォルダがあります )
    
    sendmail.exe の動作テスト
    
    まず、sendmail.ini をエディタで開いて、四つのエントリを指定します
    ▼ さくらインターネットを使う場合の設定
    
    smtp_server=初期ドメイン
    smtp_port=587
    auth_username=ユーザ@初期ドメイン
    auth_password=パスワード
    
    ※ smtp_ssl=auto となっており、デフォルトで ssl で実行され、使え無い場合は TLS を使おうとします php.ini の設定
    sendmail_path = "C:\tools\sendmail\sendmail.exe"
    
    実際の sendmail.exe のパスを "" で囲んで指定します。 ※ この場合、エラーログは "C:\tools\sendmail\error.log" です( デフォルト ) PHP のコード ( UTF8 BOM なしで記述します ) HTML の input 要素で type="text" name="fld_to"、name="fld_subject"、name="fld_body"、を form 要素の中に記述し、form 要素に method="post" action="以下の PHP のファイルのパス" を指定し、form 要素の中に input 要素で type="submit" を指定したボタンを記述します。
    mb_language("Japanese");
    mb_internal_encoding("UTF-8");
    
    $from_header = "From: " . mb_encode_mimeheader( mb_convert_encoding("差出人","iso-2022-jp") );
    
    $from_header .= " <{$GLOBALS["mail"]}>";
    
    $result = mb_send_mail($_POST["fld_to"], $_POST["fld_subject"], $_POST["fld_body"], $from_header);
    if ( $result ) {
    	$error = "OK";
    }
    else {
    	$error = "ERROR";
    }
    
    print mb_language() . "
    "; print $error;
    $GLOBALS["mail"] は、メール形式であれば良いですが、通常ならば auth_username で指定したメールアドレスを記述します。
    
    PHP の mb_send_mail の使用方法の全体のサンプルは、こちらを参照して下さい。
    
    
    
    
    
    
    posted by lightbox at 2024-08-05 10:36 | PHP + 通信 | このブログの読者になる | 更新情報をチェックする
    Seesaa の各ページの表示について
    Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。
    
    Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。
    
    また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。
    
    ※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです
    
    対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。
    
    
    ※ エキスパートモードで表示しています
    
    アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります
    
    
    <% if:page_name eq 'archive' -%>
    アーカイブページでのみ表示される内容
    <% /if %>
    
    <% if:page_name eq 'category' -%>
    カテゴリページでのみ表示される内容
    <% /if %>
    
    <% if:page_name eq 'tag' -%>
    タグページでのみ表示される内容
    <% /if %>
    
    この記述は、以下の場所で使用します
    container 終わり



    フリーフォントで簡単ロゴ作成
    フリーフォントでボタン素材作成
    フリーフォントで吹き出し画像作成
    フリーフォントではんこ画像作成
    ほぼ自由に利用できるフリーフォント
    フリーフォントの書体見本とサンプル
    画像を大きく見る為のウインドウを開くボタンの作成

    CSS ドロップシャドウの参考デモ
    イラストAC
    ぱくたそ
    写真素材 足成
    フリーフォント一覧
    utf8 文字ツール
    右サイド 終わり
    base 終わり