フリーのSQL 開発ツールといえば「A5:SQL Mk-2」が有名です。Windows ODBC に強い!というイメージです。ただのイメージで、他のDB 管理/クエリツールでもODBC は普通に使えるのですが。
この記事では、A5 Mk-2 からCData ODBC Drivers for Salesforce 経由でSQL クエリでSalesforce データをクエリしてみます。
A5:SQL Mk-2 をインストール
https://a5m2.mmatsubara.com/ からA5 Mk-2 をダウンロードして解凍します。
CData ODBC Driver for Salesforce の準備
CData ODBC Driver for Saleforce をダウンロード
CData ODBC Drivers サイトからSalesforce ODBC を選択します。
https://www.cdata.com/jp/drivers/salesforce/odbc/ からドライバーをダウンロードします。30日の無償評価版があります。
DL された.exe ファイルを実行してインストールを行います。
Salesforce アカウントに接続するDSN を設定
インストール完了後にODBC DSN 設定画面が開きます。
Salesforce に接続するには、以下の3つのプロパティの設定が最低必要です:
入力したら、[接続のテスト]を押してSalesforce への接続を試します。問題がなければ[OK]を押してSalesforce への接続を確立させます。
A5 Mk-2 からSalesforce ODBC をクエリ
Salesforce ODBC を使う
[64bit ODBCシステムデータソースを列挙する]にチェックを入れます。システムデータソースを利用するか、ユーザーデータソースを利用するかはどちらでもかまいません。
データベースとして、設定しているODBC DSN がツリービューで表示されます。CData ODBC Driver で設定されたDSN もここに表示されます。
[CData Salesforce Sys]をダブルクリップします。データベースログイン画面が開くので、Salesforce のユーザーとパスワードでログインします。
Salesforce のオブジェクトがテーブル・ビュー・ストアドプロシージャにモデル化されて表示されます。
[Lead]というテーブルを開いてみます。Lead オブジェクトで利用できるデータがカラムとしてモデル化されています。それぞれのカラムにはデータ型の情報も付いています。
では、実際にSQL を作成してみましょう。
Salesforce にクエリするSQL をA5 Mk-2 で作成する
対象のテーブル・ビューを右クリックして[SQL の作成]をクリックしてクエリ作成画面を開きます。
SELECT 文
SELECT にチェックを入れます。とりあえず全カラムを指定して条件なしでクエリしてみます。
以下のSQL クエリが生成されました。実行ボタンで実行するとSalesforce のLead オブジェクトがクエリされ、データがテーブルとして返されます。
--*DataTitle "Salesforce"."Lead"
--*CaptionFromComment
SELECT
"Id" -- Id
, "IsDeleted" -- IsDeleted
, "MasterRecordId" -- MasterRecordId
, "LastName" -- LastName
, "FirstName" -- FirstName
, "Salutation" -- Salutation
, "Name" -- Name
, "Title" -- Title
, "Company" -- Company
, "Street" -- Street
, "City" -- City
, "State" -- State
, "PostalCode" -- PostalCode
, "Country" -- Country
, "Latitude" -- Latitude
, "Longitude" -- Longitude
, "GeocodeAccuracy" -- GeocodeAccuracy
, "Phone" -- Phone
, "MobilePhone" -- MobilePhone
, "Fax" -- Fax
, "Email" -- Email
, "Website" -- Website
, "PhotoUrl" -- PhotoUrl
, "Description" -- Description
, "LeadSource" -- LeadSource
, "Status" -- Status
, "Industry" -- Industry
, "Rating" -- Rating
, "AnnualRevenue" -- AnnualRevenue
, "NumberOfEmployees" -- NumberOfEmployees
, "OwnerId" -- OwnerId
, "IsConverted" -- IsConverted
, "ConvertedDate" -- ConvertedDate
, "ConvertedAccountId" -- ConvertedAccountId
, "ConvertedContactId" -- ConvertedContactId
, "ConvertedOpportunityId" -- ConvertedOpportunityId
, "IsUnreadByOwner" -- IsUnreadByOwner
, "CreatedDate" -- CreatedDate
, "CreatedById" -- CreatedById
, "LastModifiedDate" -- LastModifiedDate
, "LastModifiedById" -- LastModifiedById
, "SystemModstamp" -- SystemModstamp
, "LastActivityDate" -- LastActivityDate
, "LastViewedDate" -- LastViewedDate
, "LastReferencedDate" -- LastReferencedDate
, "Jigsaw" -- Jigsaw
, "JigsawContactId" -- JigsawContactId
, "CleanStatus" -- CleanStatus
, "CompanyDunsNumber" -- CompanyDunsNumber
, "DandbCompanyId" -- DandbCompanyId
, "EmailBouncedReason" -- EmailBouncedReason
, "EmailBouncedDate" -- EmailBouncedDate
, "SICCode__c" -- SICCode__c
, "ProductInterest__c" -- ProductInterest__c
, "Primary__c" -- Primary__c
, "CurrentGenerators__c" -- CurrentGenerators__c
, "NumberofLocations__c" -- NumberofLocations__c
FROM
"Salesforce"."Lead"
ちなみにSalesforce の画面で確認したLead はこちらです。
次にフィルタリング条件を付けてみます。[Company]カラムに絞り込みを行います。カラム数も選択で絞ります。
SQL が生成されるので、Company に['伊達株式会社']を入れて絞り込みます。実行します。フィルタリングも普通に機能しますね。
--*DataTitle "Salesforce"."Lead"
--*CaptionFromComment
SELECT
"Id" -- Id
, "LastName" -- LastName
, "FirstName" -- FirstName
, "Name" -- Name
, "Title" -- Title
, "Company" -- Company
, "Status" -- Status
, "Industry" -- Industry
FROM
"Salesforce"."Lead"
WHERE
"Company" = '伊達株式会社'
INSERT 文
次にINSERT 処理をやってみます。
INSERT
INTO "Salesforce"."Lead" ("LastName", "FirstName", "Company")
VALUES ('テスト', 'てすと','テスト株式会社')
試しにSELECT して確認すると確かに「テスト株式会社」が作成されています。
UPDATE 文
次に更新処理を行います。松平株式会社の一党25件のリードを徳川株式会社に変更します。
UPDATE "Salesforce"."Lead"
SET
"Company" = '徳川株式会社'
WHERE "Company" = '松平株式会社'
処理が完了して、更新されました。
DELETE 文
最後にDELETE 文を実行します。
「最上株式会社」のLead には消えてもらいましょう。
DELETE
FROM
"Salesforce"."Lead"
WHERE
"Company" = '最上株式会社'
まとめ
おなじみのSQL 作成ツールで、CData ODBC Driver for Salesforce 経由でSalesforce を標準SQL でCRUD 操作することができました。
CData ODBC Drivers はほかにも150 種類を超えるSaaS/NoSQL 向けのODBC Driver を用意しています。是非、無償版からお試しください。