Oracle
 sql >> Baza danych >  >> RDS >> Oracle

parametr oddzielony przecinkami w procedurze składowanej plsql

Obawiam się, że to nie działa w ten sposób:

SELECT * from myTable where name in (inputStr);

Możesz użyć dynamicznego SQL, jak w odpowiedzi @Bob Jarvis, lub możesz wykonać następujące czynności:

SELECT * FROM myTable WHERE REGEXP_LIKE(name, '^(' || REPLACE(inputStr, ',', '|') || ')$');

Trudność z tym ostatnim polega na tym, że w Oracle wyrażenie regularne może mieć maksymalnie 512 bajtów. Więc twój inputStr będzie ograniczony do 508 bajtów (ponieważ dodajemy cztery bajty dla kotwic i grupowania).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak obsłużyć wyjątek i wykonać pozostałe instrukcje?

  2. java.lang.ArrayIndexOutOfBoundsException:dla połączenia jdbc

  3. Jak zapytać o uprawnienia w katalogu Oracle?

  4. Błąd predykatu w Oracle VPD/RLS

  5. Kluczowe zmiany technologiczne w E-Business Suite 12.2