sql >> Databáze >  >> RDS >> Oracle

PL/SQL:přepište příkaz SELECT pomocí parametru IN v uložené proceduře

Budete muset použít stejný dynamický přístup SQL, který byl navržen ve vaší další otázce

PROCEDURE get_stat (gender IN VARCHAR2) 
AS
    v_sql   varchar2(1000);
    v_param varchar2(100) := 'AVG_WEIGHT';
    v_stat  number;
BEGIN
    v_sql := 'SELECT ' || gender || ' FROM survey WHERE parameter = :1';
    EXECUTE IMMEDIATE v_sql
                 INTO v_stat
                USING v_param;
END get_stat;

Ale měli byste stejné obecné námitky, jaké byly vzneseny ve vaší dřívější otázce – datový model je zásadně chybný. Mnohem lépe by vám posloužil samostatný řádek pro MALE a FEMALE namísto samostatných sloupců pro male a female výsledky.



  1. Výkon sekvencí a seriálů v Postgres-XL

  2. Nainstalujte a nakonfigurujte MySQL Workbench na Ubuntu 16.04

  3. postgresql libpqxx Několik dotazů jako jedna transakce

  4. Jak mohu simulovat proměnnou pole v MySQL?