SQL の設定
| 使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、Developer Edition、および Database.com Edition |
コマンドラインからデータローダをバッチモードで実行しているときに、SqlConfig クラスには、データベース内の特定のデータにアクセスするための設定パラメータが含まれます。次のコードサンプルに示すように、クエリと挿入は違うものですが、よく似ています。bean は、タイプが com.salesforce.dataloader.dao.database.SqlConfig で、次のプロパティを持っている必要があります。
- sqlString
- データアクセスオブジェクトが使用する SQL コード。
SQL には、設定や操作変数に応じて文字列を作成する置換パラメータを含めることができます。置換パラメータは、始めと終わりの両端を「@」文字で区切る必要があります。たとえば、@process.lastRunDate@ となります。
- sqlParams
- sqlString で指定した置換パラメータの説明が含まれているタイプ map のプロパティ。各エントリが 1 つの置換パラメータを表します。キーは置換パラメータの名前、値はパラメータが SQL 文に設定された場合に使用される完全修飾された Java 型です。java.util.Date に代わる java.sql.Date など、「java.sql」型が必要になる場合があります。詳細は、JDBC API の公式マニュアルを参照してください。
- columnNames
- クエリ ([選択] 文) が JDBC ResultSet を返す場合に使用されます。SQL の実行によって出力されたデータの列名が含まれています。列名を使用して、DataReader インターフェースの呼び出し元にアクセスして出力を返します。
SQL クエリ bean の例
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<bean id="accountMasterSql"
18 class="com.salesforce.dataloader.dao.database.SqlConfig"
19 singleton="true">
20 <property name="sqlString"/>
21 <value>
22 SELECT distinct
23 '012x00000000Ij7' recordTypeId,
24 accounts.account_number,
25 org.organization_name,
26 concat (concat(parties.address1, ' '), parties.address2) billing_address,
27 locs.city,
28 locs.postal_code,
29 locs.state,
30 locs.country,
31 parties.sic_code
32 from
33 ar.hz_cust_accounts accounts,
34 ar.hz_organization_profiles org,
35 ar.hz_parties parties,
36 ar.hz_party_sites party_sites,
37 ar.hz_locations locs
38 where
39 accounts.PARTY_ID = org.PARTY_ID
40 and parties.PARTY_ID = accounts.PARTY_ID
41 and party_sites.PARTY_ID = accounts.PARTY_ID
42 and locs.LOCATION_ID = party_sites.LOCATION_ID
43 and (locs.last_update_date > @process.lastRunDate@ OR accounts.last_update_date > @process.lastRunDate@
44 </value>
45 </property>
46 <property name="columNames">
47 <list>
48 <value>recordTypeId</value>
49 <value>account_number</value>
50 <value>organization_name</value>
51 <value>billing_address</value>
52 <value>city</value>
53 <value>postal_code</value>
54 <value>state</value>
55 <value>country</value>
56 <value>sic_code</value>
57 </list>
58 </property>
59 <property name="sqlParams">
60 <map>
61 <entry key="process.lastRunDate" value="java.sql.Date"/>
62 </map>
63 </property>
64</bean>SQL 挿入 Bean の例
1swfobject.registerObject("clippy.codeblock-1", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<bean id="partiesInsertSql"
18 class="com.salesforce.dataloader.dao.database.SqlConfig"
19 singleton="true">
20 <property name="sqlString"/>
21 <value>
22 INSERT INTO REP.INT_PARTIES (
23 BILLING_ADDRESS, SIC_CODE)
24 VALUES (@billing_address@, @sic_code@)
25 </value>
26 </property>
27 <property name="sqlParams"/>
28 <map>
29 <entry key="billing_address" value="java.lang.String"/>
30 <entry key="sic_code" value="java.lang.String"/>
31 </map>
32 </property>
33</bean>