我今天从Salesforce导入数据,当我的BULK INSERT因数据太长而失败时:比Salesforce本身报告的字段长度更长。我发现Salesforce描述为TEXT(40)
的字段的最大值为255个字符。我只能猜测字段过去一个255个字符的限制,更改为TEXT(40)
,而Salesforce尚未应用新限制。
何时强制执行字段长度?仅在插入或修改新数据时?它们是否在任何其他时间执行,例如每周安排?
其次,有没有办法知道实际字段长度限制?作为一个数据库人,无法依赖我给出的元数据让我感到畏缩。作为一个随机的例子,如果我们要从备份中恢复该表,我认为长值会炸弹,或者可能被截断。
我正在使用SOAP API。
答案 0 :(得分:8)
在创建/更新时强制执行字段长度。如果稍后缩短长度,则不会截断现有记录。我想这是因为salesforce无论如何都将它们存储为255个。
从实际上讲,salesforce中任何文本字段的“实际”字段限制应该被视为255.这是因为在过去的某个时刻,当限制高达255时,可能会插入记录。
你是对的,如果你要转储该表并重新插入它,你很可能会因为超出当前定义的字段大小的值而拒绝记录。