Có cách nào để lấy danh sách tất cả các trường trong bảng trong Salesforce không? DESCRIBE myTable
không hoạt động và SELECT * FROM myTable
không hoạt động.Salesforce SOQL mô tả bảng
Trả lời
Từ bên trong Apex, bạn có thể có được điều này bằng cách chạy đoạn mã Apex sau. Nếu bảng/đối tượng của bạn có tên là MyObject__c
, thì điều này sẽ cung cấp cho bạn Tập tên API của tất cả các trường trên đối tượng mà bạn có quyền truy cập (điều này quan trọng --- ngay cả với Quản trị viên hệ thống, nếu một số trường nhất định trên bảng của bạn/đối tượng không nhìn thấy được qua Dòng Cấp an ninh đối với bạn, họ sẽ không hiển thị ở đây):
// 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);
để kết thúc này đi, và đạt được SELECT * FROM MYTABLE
chức năng, bạn sẽ cần phải xây dựng một truy vấn SOQL động sử dụng các lĩnh vực:
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);
cuộc gọi API describeSObject trả về tất cả siêu dữ liệu về một đối tượng/bảng nhất định bao gồm các trường của nó. Có sẵn trong SOAP, REST & API Apex.
Hãy thử sử dụng Schema.FieldSet
Schema.DescribeSObjectResult d = Account.sObjectType.getDescribe();
Map<String, Schema.FieldSet> FsMap = d.fieldSets.getMap();
Các bạn đã thử DESC myTable
?
Đối với tôi, nó hoạt động tốt, nó cũng nằm trong các mẹo cơ bản về in nghiêng. Hãy xem:
[sf: MALFORMED_QUERY] MALFORMED_QUERY: mã thông báo không mong muốn: DESC –
Thú vị. Nó làm việc cho tôi. – Riccardo
- 1. Salesforce SOQL: truy vấn để lấy tất cả các trường trên thực thể
- 2. Salesforce - SOQL Sử dụng mod() hoặc các hàm toán học tương tự trong SELECT?
- 3. Thay đổi bộ mô tả ngắt Bảng
- 4. Mô tả các cột trong bảng DB2
- 5. Mô tả và gỡ lỗi NSObjectMô tả
- 6. Truy vấn API REST Salesforce Hơn 2000
- 7. Salesforce: Tránh giới hạn thống đốc trong các lớp Kiểm tra trên bảng
- 8. HTML Mô tả Meta + &
- 9. chuỗi mô tả strerror
- 10. LINQ to Salesforce "SQL" nhà cung cấp
- 11. Cách hiển thị mô tả lớp học, mô tả thuộc tính và mô tả hoạt động của jmx MBeans
- 12. Trình mô tả là gì?
- 13. thêm một mô tả cột
- 14. In mô tả chi nhánh
- 15. Chuỗi mô tả về NSDate
- 16. Mô tả cho Minecraft Renderengine
- 17. Truy vấn SOQL WHERE Date = 30_days_ago?
- 18. Bộ mô tả ổ cắm và tệp
- 19. thư viện salesforce python để nhận dữ liệu salesforce?
- 20. Xác thực Id Salesforce
- 21. Tương đương với 'mô tả bảng' trong SQL Server là gì?
- 22. Cách sạch nhất để sắp xếp kết quả truy vấn "mô tả bảng" là gì?
- 23. (Viết hạt nhân) Làm cách nào để sửa đổi bảng mô tả ngắt?
- 24. Có thể thêm mô tả/nhận xét vào bảng trong Microsoft SQL 2000+
- 25. Mô tả Box sử dụng "onmouseover"
- 26. "git mô tả" bỏ qua một thẻ
- 27. lấy Process Mô tả Thông tin
- 28. cấu trúc gtable mô tả yếu tố
- 29. Nếu có đề xuất mô tả gói
- 30. Mô tả để chỉ trả về ClassName?
Tôi sẽ truy vấn điều này bằng SOQL như thế nào? – Maverick
Tôi nghĩ rằng nó không phải là có thể sử dụng chỉ có SOQL ... bạn có thể làm điều đó bằng cách sử dụng Javascript (hoặc bất kỳ ngôn ngữ thực hiện API), hoặc Apex như tôi đã trả lời. –
Bạn có thể xem cùng một câu hỏi và cùng một câu trả lời tại đây: http://stackoverflow.com/questions/8780413/salesforce-soql-query-to-fetch-all-the-fields-on-the-entity –