15

Salesforceのテーブルのすべてのフィールドのリストを取得する方法はありますか?DESCRIBE myTable動作しません、そしてSELECT * FROM myTable動作しません。

4

4 に答える 4

14

Apex 内から、次の Apex コードスニペットを実行してこれを取得できます。テーブル/オブジェクトが という名前MyObject__cの場合、これにより、アクセスできるそのオブジェクトのすべてのフィールドの API 名のセットが得られます (これは、システム管理者としても重要です。テーブル/オブジェクトの特定のフィールドの場合オブジェクトはフィールド レベル セキュリティでは表示されないため、ここには表示されません):

// Get a map of all fields available to you on the MyObject__c table/object
// keyed by the API name of each field
Map<String,Schema.SObjectField> myObjectFields 
   = MyObject__c.SObjectType.getDescribe().fields.getMap();

// Get a Set of the field names
Set<String> myObjectFieldAPINames = myObjectFields.keyset();

// Print out the names to the debug log
 String allFields = 'ALL ACCESSIBLE FIELDS on MyObject__c:\n\n';
for (String s : myObjectFieldAPINames) {
    allFields += s + '\n';
}
System.debug(allFields);

これを完了してSELECT * FROM MYTABLE機能を実現するには、次の項目を使用して動的 SOQL クエリを作成する必要があります。

List<String> fieldsList = new List<String>(myObjectFieldAPINames);
String query = 'SELECT ';
// Add in all but the last field, comma-separated
for (Integer i = 0; i < fieldsList.size()-1; i++) {
   query += fieldsList + ',';
}
// Add in the final field
query += fieldsList[fieldsList.size()-1];
// Complete the query
query += ' FROM MyCustomObject__c';
// Perform the query (perform the SELECT *)
List<SObject> results = Database.query(query);
于 2012-09-25T17:22:59.787 に答える
3

describeSObject API 呼び出しは、フィールドを含む特定のオブジェクト/テーブルに関するすべてのメタデータを返します。SOAP、REST、Apex API で利用できます。

于 2012-09-25T16:37:10.140 に答える
1

Schema.FieldSetを使用してみてください

Schema.DescribeSObjectResult d =   Account.sObjectType.getDescribe();
Map<String, Schema.FieldSet> FsMap = d.fieldSets.getMap();

完全なドキュメント

于 2012-09-25T16:37:30.060 に答える
-7

試しましたDESC myTableか?

私にとっては問題なく動作します。また、イタリック体の基本的なヒントにもあります。見て:

ここに画像の説明を入力

于 2014-08-23T15:04:50.613 に答える