Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle sql типове през dblink

Имал съм подобни проблеми в миналото. След това стигнах до заключението, че по същество db връзките на Oracle са "счупени" за всичко друго, но не и за прости SQL типове (особено UDT, CLOBS може да има проблеми, XMLType също може). Ако успеете да накарате решението за OID да работи, тогава успех на вас.

Решението, към което прибягнах, беше да използвам Java Stored процедура, вместо DB Link.

Характеристики на съхранената процедура на Java:

  1. Може да върне „богат набор от типове“, почти всички сложни типове (UDT, таблици/масиви/варианти) вижте Онлайн документация на Oracle за детайли. Oracle се справя много по-добре с маршалинга на сложни (или богати) типове от java, отколкото от DBLink.
  2. Съхранената Java може да придобие „връзката по подразбиране“ (изпълнява се в същата сесия като SQL връзката към db – няма проблеми с удостоверяването).
  3. Съхранената Java извиква PL/SQL процедурата на отдалечената DB, а Java JDBC слоят извършва маршалинга от отдалечената DB.
  4. Съхранената Java пакетира резултата и го връща на SQL или PL/SQL слоя.

Това е малко работа, но ако имате малко Java, трябва да можете да „изрежете и поставите“ решение заедно от документацията и примера на Oracle.

Надявам се това да помогне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle PLSQL въпроси за интервю

  2. Oracle PL/SQL:Динамично преобръщане на тригерни колони

  3. Как да изчистите опашка в Oracle AQ

  4. Как да изчислим средната стойност на колона и след това да я включим в заявка за избор в oracle?

  5. ORA-29913:грешка при изпълнение на извикване на ODCIEXTTABLEOPEN