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

Как да посочите IN клауза в динамична заявка с помощта на променлива?

Подобно на връзката @Sathya, можете да свържете променливата (взех пример с @Codo):

CREATE OR REPLACE TYPE str_tab_type IS VARRAY(10) OF VARCHAR2(200);
/
DECLARE
  l_str_tab str_tab_type;
  l_count NUMBER;
  v_sql varchar2(3000);
BEGIN
  l_str_tab := str_tab_type();
  l_str_tab.extend(2);
  l_str_tab(1) := 'TABLE';
  l_str_tab(2) := 'INDEX';

  v_sql := 'SELECT COUNT(*) FROM all_objects WHERE object_type IN (SELECT COLUMN_VALUE FROM TABLE(:v_list))';

  execute immediate v_sql into l_count using l_str_tab;

  dbms_output.put_line(l_count);
END;
/

АКТУАЛИЗИРАНЕ: първата команда може да бъде заменена с:

CREATE OR REPLACE TYPE str_tab_type IS TABLE OF VARCHAR2(200);
    /

след това се обадете:

l_str_tab.extend(1);

когато някога добавите стойност



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. оракул varchar към номер

  2. Актуализиране на таблицата на Oracle от макрос на Excel VBA с помощта на ODBC връзка

  3. Oracle REGEXP_LIKE и граници на думите

  4. Как да добавите индикатора AD/BC към дата в Oracle

  5. Какво представлява Oracle SQL и PL/SQL? Всичко, което един начинаещ трябва да знае