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

предаване на таблица и име на колона динамично с помощта на свързващи променливи

Имената на таблици и колони не могат да се предават като свързващи променливи, не. Целият смисъл на свързващите променливи е, че Oracle може да генерира план за заявка веднъж за израза и след това да го изпълни много пъти с различни стойности на променливата за свързване. Ако оптимизаторът не знае до коя таблица се осъществява достъп или какви колони се избират и филтрират, той не може да генерира план за заявка.

Ако притеснението ви е свързано с атаки с инжектиране на SQL и ако приемем, че динамичният SQL всъщност е необходим (през повечето време необходимостта от прибягване до динамичен SQL предполага проблеми с модела на данните), можете да използвате DBMS_ASSERT пакет, за да потвърдите, че имената на таблици и колони не съдържат вграден SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Промяна на първичния ключ

  2. Въпрос за присъединяване към SQL

  3. Разделената последователност на Oracle

  4. Как да покажа работещи процеси в Oracle DB?

  5. Оптимален начин за ИЗТРИВАНЕ на определени редове от Oracle