<?xml version="1.0" encoding="UTF-8" ?>
<rss version="0.91">
  <channel>
    <title>Javaってまだいけますか</title>
    <description>いっぱいいっぱいで無理なので学んだ事をいちいちメモっていくブログです。</description>
    <link>https://javawock.blog.shinobi.jp/</link>
    <language>ja</language>
    <copyright>Copyright (C) NINJATOOLS ALL RIGHTS RESERVED.</copyright>

    <item>
      <title>IBMとSunのJVMのリソース使用量の違いについて</title>
      <description>のメモ。&lt;br /&gt;
&lt;br /&gt;
《背景》&lt;br /&gt;
IBMのDB2をインストールしたサーバでJavaアプリケーションを動かす必要がありました。&lt;br /&gt;
DB2をインストールすると同梱のJavaが一緒にインストールされてたので、ちょうど良いと思いそっちにパスを通してアプリを起動するように設定しました。&lt;br /&gt;
ところが処理負荷の高い部分でOSがフリーズしたような状態になり、サーバの電源を落とすはめに。。。&lt;br /&gt;
&lt;br /&gt;
《検証》&lt;br /&gt;
メモリ使用量などを出力するサンプルプログラムを作成し、IBMとSunの違いを見てみました。&lt;br /&gt;
&lt;a href=&quot;http://sattontanabe.blog86.fc2.com/blog-entry-49.html&quot;&gt;サンプルプログラムの参考&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://javawock.blog.shinobi.jp/java/ibm%E3%81%A8sun%E3%81%AEjvm%E3%81%AE%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E4%BD%BF%E7%94%A8%E9%87%8F%E3%81%AE%E9%81%95%E3%81%84%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&quot; target=&quot;_blank&quot;&gt;つづきはこちら&lt;/a&gt;</description> 
      <link>https://javawock.blog.shinobi.jp/java/ibm%E3%81%A8sun%E3%81%AEjvm%E3%81%AE%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E4%BD%BF%E7%94%A8%E9%87%8F%E3%81%AE%E9%81%95%E3%81%84%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6</link> 
    </item>
    <item>
      <title>CVSからSubversionへの移行時の改行コードに関するメモ（Eclipse利用時）</title>
      <description>開発クライアントマシンにWindowsを使用してEclipseを使っている場合のメモ。&lt;br /&gt;
Windowsでソースファイルやbatファイル、xmlファイルなどのテキスト形式のファイルを作成すると、改行コードはCR+LFになります。&lt;br /&gt;
&lt;br /&gt;
それをCVSへコミットすると、CVSは改行コードをLFで保存します。&lt;br /&gt;
&lt;br /&gt;
そのファイルをチェックアウトすると改行コードがCR+LFに変換されます。&lt;br /&gt;
これはEclipseの設定（［チーム］→［CVS］）で「プラットフォーム行終了を使用するためにテキスト・ファイルを変換」）を選択しているとそのようになります。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://kanamehackday.blog17.fc2.com/blog-entry-130.html&quot; target=&quot;_blank&quot;&gt;参考&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
このような動作となる為、CVS利用時は特に問題ありませんでした。&lt;br /&gt;
&lt;br /&gt;
その後、cvs2svnツールでSubversionに移行しましたが、そこで問題が発生。&lt;br /&gt;
&lt;br /&gt;
cvs2svnツールを実行するとき改行コードに関するオプション（--default-eol=CRLF）を指定しなかった為、改行コードLFのままSubversionへ移行されました。&lt;br /&gt;
&lt;br /&gt;
そしてSubclipseプラグインをインストールしてチェックアウトするとテキスト形式のファイルの改行コードが全てLFに。。。&lt;br /&gt;
CVSの時のように変換してくれないんですね。&lt;br /&gt;
&lt;br /&gt;
ぐぐったところ、Subversionの設定で「enable-auto-props」という設定で改行コードの変換方法を指定できることがわかりましたが、これはどうやらチェックアウト時ではなくコミット時に設定するプロパティの様子。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://openlab.dino.co.jp/2008/10/15/212603361.html&quot; target=&quot;_blank&quot;&gt;参考&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
結局移行しなおすことにしました。。。&lt;br /&gt;
&lt;br /&gt;
移行時もそうですが、新規にSubversionを利用した開発を開始するときも「enable-auto-props」設定をはじめに整備する必要がありますよね…。&lt;br /&gt;
</description> 
      <link>https://javawock.blog.shinobi.jp/subversion-cvs/cvs%E3%81%8B%E3%82%89subversion%E3%81%B8%E3%81%AE%E7%A7%BB%E8%A1%8C%E6%99%82%E3%81%AE%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%83%A1%E3%83%A2%EF%BC%88eclipse%E5%88%A9%E7%94%A8%E6%99%82%EF%BC%89</link> 
    </item>
    <item>
      <title>DB2のシステムカタログ</title>
      <description>システムカタログ参照方法をメモ。&lt;br /&gt;
&lt;br /&gt;
・テーブル一覧&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-sql&quot;&gt;SELECT TABSCHEMA, TABNAME, DEFINER, TYPE, STATUS, CREATE_TIME&lt;br /&gt;
FROM SYSCAT.TABLES&lt;br /&gt;
WHERE&lt;br /&gt;
  TABSCHEMA = '[スキーマ名]' AND&lt;br /&gt;
  TYPE = 'T'&lt;br /&gt;
ORDER BY TABNAME&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
・ビュー一覧&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-sql&quot;&gt;SELECT TABSCHEMA, TABNAME, DEFINER, TYPE, STATUS, CREATE_TIME&lt;br /&gt;
FROM SYSCAT.TABLES&lt;br /&gt;
WHERE&lt;br /&gt;
  TABSCHEMA = '[スキーマ名]' AND&lt;br /&gt;
  TYPE = 'V'&lt;br /&gt;
ORDER BY TABNAME&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
・インデックス一覧&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-sql&quot;&gt;SELECT INDSCHEMA, INDNAME, DEFINER, TABNAME, COLNAMES, UNIQUERULE, CREATE_TIME&lt;br /&gt;
FROM SYSCAT.INDEXES&lt;br /&gt;
WHERE&lt;br /&gt;
  TABSCHEMA = '[スキーマ名]' AND&lt;br /&gt;
  UNIQUERULE != 'P'&lt;br /&gt;
ORDER BY&lt;br /&gt;
  TABNAME, INDNAME&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
・ファンクション一覧&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-sql&quot;&gt;SELECT FUNCSCHEMA, FUNCNAME, DEFINER, CREATE_TIME&lt;br /&gt;
FROM SYSCAT.FUNCTIONS&lt;br /&gt;
WHERE&lt;br /&gt;
  FUNCSCHEMA = '[スキーマ名]'&lt;br /&gt;
ORDER BY&lt;br /&gt;
  FUNCNAME&lt;/pre&gt;&lt;br /&gt;
</description> 
      <link>https://javawock.blog.shinobi.jp/db-%20db2/db2%E3%81%AE%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%AB%E3%82%BF%E3%83%AD%E3%82%B0</link> 
    </item>
    <item>
      <title>DB2のGRANTメモ</title>
      <description>ロールを以下の3つに分けたと想定します。&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;DB_MANAGER : DB管理者(全権限)&lt;br /&gt;
SYSTEM_OPERATOR : システム運用保守担当者(更新可)&lt;br /&gt;
PUBLIC_USER : 参照専用ユーザ(参照のみ)&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
すると、各DBオブジェクトへのGRANTは以下のようになります。&lt;br /&gt;
&lt;br /&gt;
・テーブルへのGRANT&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;GRANT CONTROL ON [スキーマ名].[テーブル名] TO GROUP DB_MANAGER&lt;br /&gt;
GRANT SELECT,INSERT,UPDATE,DELETE,REFERENCES ON [スキーマ名].[テーブル名] TO GROUP SYSTEM_OPERATOR&lt;br /&gt;
GRANT SELECT ON [スキーマ名].[テーブル名] TO GROUP PUBLIC_USER&lt;/pre&gt;&lt;br /&gt;
・ビューへのGRANT(全部SELECT権限を付与)&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;GRANT SELECT ON [スキーマ名].[ビュー名] TO GROUP DB_MANAGER&lt;br /&gt;
GRANT SELECT ON [スキーマ名].[ビュー名] TO GROUP SYSTEM_OPERATOR&lt;br /&gt;
GRANT SELECT ON [スキーマ名].[ビュー名] TO GROUP PUBLIC_USER&lt;/pre&gt;&lt;br /&gt;
・ファンクションへのGRANT(全部EXECUTE権限を付与)&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;GRANT EXECUTE ON FUNCTION [スキーマ名].[ファンクション名] TO GROUP DB_MANAGER&lt;br /&gt;
GRANT EXECUTE ON FUNCTION [スキーマ名].[ファンクション名] TO GROUP SYSTEM_OPERATOR&lt;br /&gt;
GRANT EXECUTE ON FUNCTION [スキーマ名].[ファンクション名] TO GROUP PUBLIC_USER&lt;/pre&gt;&lt;br /&gt;
・プロシージャ(全部EXECUTE権限を付与)&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;GRANT EXECUTE ON PROCEDURE [スキーマ名].[プロシージャ名] TO GROUP DB_MANAGER&lt;br /&gt;
GRANT EXECUTE ON PROCEDURE [スキーマ名].[プロシージャ名] TO GROUP SYSTEM_OPERATOR&lt;br /&gt;
GRANT EXECUTE ON PROCEDURE [スキーマ名].[プロシージャ名] TO GROUP PUBLIC_USER&lt;/pre&gt;&lt;br /&gt;
&lt;a href=&quot;http://publib.boulder.ibm.com/html/as400/v4r5/ic2962/info/db2/rbafzmst102.htm&quot; target=&quot;_blank&quot;&gt;参考&lt;/a&gt;</description> 
      <link>https://javawock.blog.shinobi.jp/db-%20db2/db2%E3%81%AEgrant%E3%83%A1%E3%83%A2</link> 
    </item>
    <item>
      <title>LDAP検索</title>
      <description>LDAPサーバへ検索条件を指定して検索を実行する場合のメモ。&lt;br /&gt;
基本的には、&lt;br /&gt;
&lt;br /&gt;
(属性名=条件値)&lt;br /&gt;
&lt;br /&gt;
のような形式でフィルタ条件を指定します。&lt;br /&gt;
&lt;br /&gt;
・AND検索&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;(&amp;(objectClass=Person)(cn=Babs*))&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
・OR検索&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;(|(objectClass=Person)(cn=Babs*))&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
・NOT検索&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;(!(objectClass=Person))&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
条件値に特殊文字を含む場合はエスケープする必要があります。&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;public String escape(String str) {&lt;br /&gt;
	&lt;br /&gt;
	if(str == null) {&lt;br /&gt;
		return &quot;\\00&quot;;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// 最初に\をエスケープ&lt;br /&gt;
	if(str.indexOf(&quot;\\&quot;) &gt;= 0) {&lt;br /&gt;
		str = StringUtils.replace(str, &quot;\\&quot;, &quot;\\5C&quot;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if(str.indexOf(&quot;*&quot;) &gt;= 0) {&lt;br /&gt;
		str = StringUtils.replace(str, &quot;*&quot;, &quot;\\2A&quot;);&lt;br /&gt;
	}&lt;br /&gt;
	if(str.indexOf(&quot;(&quot;) &gt;= 0) {&lt;br /&gt;
		str = StringUtils.replace(str, &quot;(&quot;, &quot;\\28&quot;);&lt;br /&gt;
	}&lt;br /&gt;
	if(str.indexOf(&quot;)&quot;) &gt;= 0) {&lt;br /&gt;
		str = StringUtils.replace(str, &quot;)&quot;, &quot;\\29&quot;);&lt;br /&gt;
	}&lt;br /&gt;
	return str;&lt;br /&gt;
}&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
サンプル。&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;public void search(String cn) {&lt;br /&gt;
	String filter = &quot;(cn=*&quot; + escape(cn) + &quot;)&quot;;&lt;br /&gt;
	&lt;br /&gt;
	SearchControls ctls = new SearchControls();&lt;br /&gt;
	ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);&lt;br /&gt;
&lt;br /&gt;
	Hashtable env = getEnv();&lt;br /&gt;
	DirContext dirContext = new InitialDirContext(env);&lt;br /&gt;
&lt;br /&gt;
	try {&lt;br /&gt;
		NamingEnumeration entries = dirContext.search([baseDn], filter, ctls);&lt;br /&gt;
&lt;br /&gt;
		while (entries.hasMore()) {&lt;br /&gt;
			javax.naming.directory.SearchResult entry = (javax.naming.directory.SearchResult) entries.next();&lt;br /&gt;
			&lt;br /&gt;
			// 省略&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	} finally {&lt;br /&gt;
		dirContext.close();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public Hashtable getEnv() {&lt;br /&gt;
	Hashtable env = new Hashtable();&lt;br /&gt;
	env.put(&quot;java.naming.factory.initial&quot;, &quot;com.sun.jndi.ldap.LdapCtxFactory&quot;);&lt;br /&gt;
	env.put(&quot;java.naming.provider.url&quot;, &quot;ldap://&quot; + [LDAPサーバホスト名] + &quot;:&quot; + [LDAPサーバポート番号] + &quot;/&quot;);&lt;br /&gt;
	env.put(&quot;java.naming.security.authentication&quot;, &quot;simple&quot;);&lt;br /&gt;
	env.put(&quot;java.naming.security.principal&quot;, &quot;&quot;);&lt;br /&gt;
	env.put(&quot;java.naming.security.credentials&quot;, &quot;&quot;);&lt;br /&gt;
	return env;&lt;br /&gt;
}&lt;/pre&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.ipa.go.jp/security/rfc/RFC2254JA.html&quot; target=&quot;_blank&quot;&gt;参考&lt;/a&gt;</description> 
      <link>https://javawock.blog.shinobi.jp/java/ldap%E6%A4%9C%E7%B4%A2</link> 
    </item>
    <item>
      <title>HTMLのnameとidの話</title>
      <description>id　…　そのドキュメントで一意。inputタグ以外にもtdやdivなどにも付与できる。&lt;br /&gt;
name　…　そのドキュメントで一意である必要は無い。form、input、buttonタグなどでのみ指定できる。&lt;br /&gt;
&lt;br /&gt;
ということで、以下の通り要素の取得方法が異なります。&lt;br /&gt;
・idで要素を指定&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;var value = document.getElementById('[id]').value;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
・nameで要素を指定&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;var value = document.getElementsByName('[name]').item(0).value;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.kanzaki.com/docs/html/htminfo12.html&quot; target=&quot;_blank&quot;&gt;参考&lt;/a&gt;</description> 
      <link>https://javawock.blog.shinobi.jp/web-%20javascript/html%E3%81%AEname%E3%81%A8id%E3%81%AE%E8%A9%B1</link> 
    </item>
    <item>
      <title>Accordionのグループラベルのスタイル指定</title>
      <description>Accordionのグループラベルのフォントサイズなどを変える場合のスタイル指定方法をメモ。&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;Accordion {&lt;br /&gt;
    headerStyleName: labelTextStyle;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
.labelTextStyle {&lt;br /&gt;
    font-size: 14;&lt;br /&gt;
}&lt;/pre&gt;</description> 
      <link>https://javawock.blog.shinobi.jp/flex/accordion%E3%81%AE%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%83%A9%E3%83%99%E3%83%AB%E3%81%AE%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E6%8C%87%E5%AE%9A</link> 
    </item>
    <item>
      <title>ＶＢＡで基数変換（３６進とか）</title>
      <description>ＶＢＡで基数変換を作ったのでメモ。&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;'基数変換（１０進数からＮ進数へ変換）'&lt;br /&gt;
'@param value 変換元１０進数'&lt;br /&gt;
'@param radix 変換先基数'&lt;br /&gt;
Public Function RadixConversion(value As Long, radix As Integer)&lt;br /&gt;
&lt;br /&gt;
    Dim remainder As Integer '剰余'&lt;br /&gt;
    Dim work As Double&lt;br /&gt;
    Dim result As String&lt;br /&gt;
    &lt;br /&gt;
    work = CDbl(value)&lt;br /&gt;
    &lt;br /&gt;
    Do While work &gt; 0&lt;br /&gt;
        remainder = work Mod radix&lt;br /&gt;
        result = Mid(&quot;0123456789abcdefghijklmnopqrstuvwxyz&quot;, remainder + 1, 1) + result&lt;br /&gt;
        work = WorksheetFunction.Floor(work / radix, 1)&lt;br /&gt;
    Loop&lt;br /&gt;
            &lt;br /&gt;
    RadixConversion = result&lt;br /&gt;
End Function&lt;br /&gt;
&lt;/pre&gt;&lt;br /&gt;
使い方。&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;'9000を３６進数に変換'&lt;br /&gt;
RadixConversion(9000, 36)&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
ちなみに１６進までは&lt;a href=&quot;http://office.microsoft.com/ja-jp/excel/HA100705111041.aspx&quot; target=&quot;_blank&quot;&gt;Excel標準の関数&lt;/a&gt;でありますね。</description> 
      <link>https://javawock.blog.shinobi.jp/windows-%20excel/%EF%BD%96%EF%BD%82%EF%BD%81%E3%81%A7%E5%9F%BA%E6%95%B0%E5%A4%89%E6%8F%9B%EF%BC%88%EF%BC%93%EF%BC%96%E9%80%B2%E3%81%A8%E3%81%8B%EF%BC%89</link> 
    </item>
    <item>
      <title>SQLServerの小数点第7位の切捨て問題</title>
      <description>SQLServer2005で、小数点第7位の切捨て問題回避策についてメモ。&lt;br /&gt;
&lt;br /&gt;
以下のSQLを実行すると、3.666666という結果になります。&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;select 11 / 3.0&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
つまり、小数点第7位以下は切捨てになっています。&lt;br /&gt;
(四捨五入なら3.666667)&lt;br /&gt;
&lt;br /&gt;
これが会計系のシステムで配賦計算などを行なう際に誤差を大きくする原因となったりしました。&lt;br /&gt;
&lt;br /&gt;
その時とった回避策は以下の通り。&lt;br /&gt;
&lt;br /&gt;
1．一旦計算対象の値を10倍します。⇒ 上の例だと、11×10＝110&lt;br /&gt;
2．その値に対して計算処理を実施します。⇒ 110÷3＝36.666666&lt;br /&gt;
3．計算結果を小数点題6位で四捨五入します。⇒ ROUND(36.666666, 5)＝36.666670&lt;br /&gt;
4．それを最初にかけた値で割ります。⇒ 36.666670÷10＝3.666667&lt;br /&gt;
&lt;br /&gt;
これで小数点第7位を切り捨てではなくて四捨五入として扱えます。&lt;br /&gt;
上記の例だと10倍して最後に10で割りましたが、もっと小さな値を扱う場合は1000倍とかして計算するともっと精度が上がります。&lt;br /&gt;
</description> 
      <link>https://javawock.blog.shinobi.jp/db-%20sqlserver/sqlserver%E3%81%AE%E5%B0%8F%E6%95%B0%E7%82%B9%E7%AC%AC7%E4%BD%8D%E3%81%AE%E5%88%87%E6%8D%A8%E3%81%A6%E5%95%8F%E9%A1%8C</link> 
    </item>
    <item>
      <title>ＤＢ２で制約／Identity有りのテーブルのエクスポート／インポート</title>
      <description>外部キー制約やIdentity列がある場合にいろいろ面倒だったのでメモ。&lt;br /&gt;
&lt;br /&gt;
◆エクスポート&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;db2 connect to [インスタンス名]&lt;br /&gt;
&lt;br /&gt;
db2 export to [エクスポートファイル名] of IXF select * from [スキーマ名].[テーブル名]&lt;br /&gt;
&lt;br /&gt;
db2 terminate&lt;/pre&gt;&lt;br /&gt;
◆インポート&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;db2 connect to [インスタンス名]&lt;br /&gt;
&lt;br /&gt;
rem 制約オフ&lt;br /&gt;
db2 set integrity for [スキーマ名].[テーブル名] off&lt;br /&gt;
&lt;br /&gt;
rem ロード&lt;br /&gt;
db2 load client from [エクスポートファイル名] of ixf  REPLACE INTO [スキーマ名].[テーブル名] copy yes to nul&lt;br /&gt;
&lt;br /&gt;
rem 制約オン&lt;br /&gt;
db2 set integrity for [スキーマ名].[テーブル名] immediate checked&lt;br /&gt;
&lt;br /&gt;
db2 terminate&lt;/pre&gt;&lt;br /&gt;
◆インポート（Identity列がある場合）&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;db2 connect to [インスタンス名]&lt;br /&gt;
&lt;br /&gt;
rem 制約オフ&lt;br /&gt;
db2 set integrity for [スキーマ名].[テーブル名] off&lt;br /&gt;
&lt;br /&gt;
rem ロード&lt;br /&gt;
db2 load client from [エクスポートファイル名] of ixf MODIFIED BY identityoverride  REPLACE INTO [スキーマ名].[テーブル名] copy yes to nul&lt;br /&gt;
&lt;br /&gt;
rem 制約オン&lt;br /&gt;
db2 set integrity for [スキーマ名].[テーブル名] immediate checked&lt;br /&gt;
&lt;br /&gt;
rem シーケンス開始値設定&lt;br /&gt;
db2 ALTER TABLE [スキーマ名].[テーブル名] ALTER COLUMN [Identity列名] RESTART WITH [最大値+1]&lt;br /&gt;
&lt;br /&gt;
db2 terminate&lt;/pre&gt;&lt;br /&gt;
[最大値+1]は事前に&lt;pre class=&quot;prettyprint&quot;&gt;SELECT MAX(Identity列名) + 1 FROM [スキーマ名].[テーブル名]&lt;/pre&gt;で取得しておきます。&lt;br /&gt;
ちなにみシーケンスオブジェクトを使ってPKを採番している場合は、&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;alter sequence [スキーマ名].[シーケンスオブジェクト名] restart with [最大値+1]&lt;/pre&gt;となります。&lt;br /&gt;
&lt;br /&gt;
また、制約オフ、オンは外部キー制約の親テーブルから実行する必要があります。&lt;br /&gt;
あと、ロードコマンドの“copy yes to nul”をしないと、ロード完了後にテーブルがバックアップペンディング状態になります。&lt;br /&gt;
&lt;br /&gt;
実際の仕事では親表から順にリストして各コマンドを生成するExcelを作って対応しました。&lt;br /&gt;
結構面倒ですよねぇ。&lt;br /&gt;
&lt;br /&gt;
追記：&lt;br /&gt;
最初に制約をDROPしてインポート後に制約CREATEという方法もあるみたいです。&lt;br /&gt;
ERDツールでFKのDROPを生成するものもあるようですね。&lt;br /&gt;
&lt;a href=&quot;http://d.hatena.ne.jp/jflute/20080709/1215624049&quot; target=&quot;_blank&quot;&gt;こちらのブログ記事が参考になりました。&lt;/a&gt;</description> 
      <link>https://javawock.blog.shinobi.jp/db-%20db2/%EF%BD%84%EF%BD%82%EF%BC%92%E3%81%A7%E5%88%B6%E7%B4%84%EF%BC%8Fidentity%E6%9C%89%E3%82%8A%E3%81%AE%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%EF%BC%8F%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88</link> 
    </item>

  </channel>
</rss>