Oracle - using bind variable in LIKE clause of dynamic cursor

后端 未结 2 1481
旧时难觅i
旧时难觅i 2021-01-05 12:44

I am using dynamic cursor for fetching data. Query that is being executed looks similar to:

query := \'SELECT column1, column2 
          FROM my_table 
             


        
2条回答
  •  没有蜡笔的小新
    2021-01-05 13:29

    Take the bind variable out of the string:

    VARIABLE mycursor REFCURSOR;
    VARIABLE bv1 VARCHAR2;
    
    BEGIN
      :bv1 := 'X'; -- set the bind variable
    END;
    /
    
    DECLARE
      query VARCHAR2(200) := 'SELECT * FROM DUAL WHERE DUMMY LIKE :value';
    BEGIN
      OPEN :mycursor FOR query USING '%' || :bv1 || '%';
    END;
    /
    
    PRINT mycursor;
    

    Output

    MYCURSOR
    --------
    DUMMY
    -----
    X
    

提交回复
热议问题