Le pilote ODBC Salesforce vous permet de travailler avec les données Salesforce d'Oracle® comme si les données Salesforce étaient des données Oracle® locales. Vous pouvez le faire à partir d'Oracle® exécuté sur les plates-formes Windows et non Windows.
Ce blog partage une solution de contournement pour un problème rencontré par l'un de nos clients lors de la tentative de mise à jour d'un objet Salesforce à partir d'Oracle®. L'erreur reçue par le client était :
"ORA-02070: database SF does not support some function in this context"
Le client essayait de mettre à jour ces données Salesforce :
SQL> select "Type" from Account@SF where "Id"='001w000001CKeM8AAL'; Type -------------------------------------------------------------------------------- Customer - Channel 2 SQL> update Account@SF set "Type"='Customer - Channel 3' where "Id"='001w000001CKeM8AAL'; update Account@SF set "Type"='Customer - Channel 3' where "Id"='001w000001CKeM8AAL' * ERROR at line 1: ORA-02070: database SF does not support some function in this context
La solution de contournement consistait à utiliser une instruction SQL directe :
SQL> DECLARE 2 cr NUMBER; 3 rs NUMBER; 4 BEGIN 5 cr := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@SF; 6 DBMS_HS_PASSTHROUGH.PARSE@SF(cr,'update Account set "Type"=''Customer - Channel 3'' where "Id"=''001w000001CKeM8AAL'' '); 7 rs := DBMS_HS_PASSTHROUGH.EXECUTE_NON_QUERY@SF (cr); 8 DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@SF(cr); 9 END; 10 / PL/SQL procedure successfully completed. SQL> select "Type" from Account@SF where "Id"='001w000001CKeM8AAL'; Type -------------------------------------------------------------------------------- Customer - Channel 3 SQL>