Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Binding variable in dynamic sql

KK23Sep 27 2017 — edited Sep 27 2017

Hi All,

We have requirement , below block i try to execute using dynamic sql by binding variable with like operator produces null result.

Query

pastedImage_0.png

Ananymous Block;

DECLARE

I_TBL_NAME VARCHAR2(100) := 'T_PBAMLGLOBUSSPRING';

V_QUERY VARCHAR2(4000) := ' SELECT MAX(SQL.SQL_ID)

  FROM V$SQL SQL, V$SESSION SES

 WHERE SQL.SQL\_ID = SES.SQL\_ID';

V_SQLID VARCHAR2(100);

BEGIN

V_QUERY := V_QUERY || ' AND SQL.PARSING_SCHEMA_NAME = SYS_CONTEXT(''userenv'', ''CURRENT_SCHEMA'')

   AND SES.SCHEMANAME = SYS\_CONTEXT(''userenv'', ''CURRENT\_SCHEMA'')

   AND SES.STATUS = ''ACTIVE''';

V_QUERY := V_QUERY ||

         ' AND UPPER(SQL.SQL\_FULLTEXT) LIKE ''%''||:1||''%''';

IF I_TBL_NAME IS NOT NULL THEN

EXECUTE IMMEDIATE V\_QUERY

  INTO V\_SQLID

  USING I\_TBL\_NAME;

END IF;

DBMS_OUTPUT.PUT_LINE('sql id:' || V_SQLID);

EXCEPTION

WHEN OTHERS THEN

DBMS\_OUTPUT.PUT\_LINE(' ERROR  : ' || SQLERRM || 'ERROR CODE :' ||

                     SQLCODE);

END;

if i try to execute above block , it doesn't product the output , i suspect like operator with single quotes binding cause empty resultset. Kindly advise how can i bind the single quotes value.

pastedImage_3.png

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 25 2017
Added on Sep 27 2017
9 comments
498 views