CData ドライバーで UPDATE ステートメントを使用して別のカラムの値をコピーする方法
CData ドライバーは、SaaS アプリ、ERP スイート、NoSQL、RDBMS データソースに対して SQL クエリを直接実行できます。 これには、従来のリレーショナルデータベースと同様に、あるカラムの値を別のカラムにコピーする UPDATE ステートメントを実行する機能も含まれます。
この記事では、UPDATE ステートメントを使用してカラム間で値をコピーする方法を説明します。 この例では CData ODBC Driver for Salesforce を使用していますが、 UPDATE ステートメントをサポートするすべての CData ドライバーで同じ方法と原則が適用されます。
前提条件
- CData ODBC Driver for Salesforce(無料トライアル版のダウンロード、またはライセンス版のインストールはこちらから)
- 有効な Salesforce アカウントと資格情報
概要
この記事で説明する内容の概要は以下のとおりです:
- CData ODBC Driver for Salesforce のインストールと DSN(データソース名)の設定
- SQL ステートメントの実行とカラム間での値のコピー
ステップ 1:Salesforce ODBC ドライバーのインストールと設定
- ドライバーのページから、お使いのオペレーティングシステムに対応した Salesforce ODBC ドライバーのインストーラーをダウンロードします。
- インストーラーを実行し、画面の指示に従ってセットアップを完了します。
- ODBC データソースアドミニストレーターを起動し、Salesforce 用の DSN(データソース名)を設定します:
- Windows の場合:スタートメニューで「ODBC データソース(64 ビット)」を検索して開きます。
- macOS の場合:「アプリケーション」>「ユーティリティ」>「ODBC Manager」を開きます。
- Linux の場合:unixODBC を使用して DSN を設定します(通常は odbc.ini ファイル内で設定)。
- 追加をクリックし、CData ODBC Driver for Salesforce を選択します。
- DSN 設定ダイアログで接続プロパティを入力します:

- 認証:要件に応じて認証方法を選択します: Basic(ユーザー名、パスワード、セキュリティトークン)、OAuth、または SSO(Okta、ADFS など)。
- ログイン URL:Salesforce のログインインスタンスを入力します(例:https://login.salesforce.com)。
- 資格情報:選択した認証方法に応じて、Salesforce のユーザー名、パスワード、および必要に応じてセキュリティトークンを入力します。
- 接続テストをクリックして、接続を確認します。
- 成功したら、OK をクリックして DSN を保存します。

ステップ 2:SQL ステートメントの実行
DSN を設定したら、SQL クライアント (DbVisualizer、MS Access、Excel、Python の pyodbc、BI ツールなど)から接続し、 UPDATE ステートメントを実行して Salesforce データのカラム間で値をコピーします。
基本構文
あるカラムの値を別のカラムにコピーする SQL の基本構文は以下のとおりです:
UPDATE TableName SET TargetColumn = SourceColumn;
例 1:カラム間でデータをコピーする
Salesforce の Account オブジェクトで、すべての行の Name カラムの値を BillingCity カラムにコピーします:
UPDATE Account SET BillingCity = Name;
このクエリを実行すると、すべてのレコードで BillingCity カラムの値が Name カラムの値で上書きされます。 更新対象を特定のレコードに限定するには、WHERE 句を追加します。 たとえば、Industry カラムが「Manufacturing」に設定されている Account のみを更新するには:
UPDATE Account SET BillingCity = Name WHERE Industry = 'Manufacturing';
SQL 関数の使用
SET 句で SQL 関数を使用して、更新時にデータを変換することもできます:
-
文字列の長さを計算:
Name カラムの文字数を BillingStreet カラムに格納します:
UPDATE Account SET BillingStreet = CHAR_LENGTH(Name);
-
フィールドを連結:
LastName カラムと FirstName カラムを結合して Name カラムに格納します:
UPDATE Contact SET Name = CONCAT(LastName, '-', FirstName);
これらの操作は、SaaS データのクリーンアップ、マイグレーション、変換ワークフローで特に役立ちます。 サポートされている SQL 関数の完全なリストについては、ダウンロードしたドライバーディレクトリ内の help.htm ファイル、 または jp.cdata.com/drivers/ を参照してください。
CData の 30 日間無料トライアル
Salesforce をはじめとする 300 以上の SaaS、NoSQL、データベースソースに対してクエリや更新を実行できる CData ドライバーをぜひお試しください。 30 日間の無料トライアルを今すぐ開始できます。
無料トライアルを開始