Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5847575
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T12:44:16+00:00 2026-05-22T12:44:16+00:00

Given a declared PLSQL Procedure PROCEDURE GET_DISTINCT_TIMES(dtypes IN VARCHAR2, start IN NUMBER, end IN

  • 0

Given a declared PLSQL Procedure

PROCEDURE GET_DISTINCT_TIMES(dtypes IN VARCHAR2, start IN NUMBER, end IN NUMBER
   distinct_times_cursor OUT SYS_REFCURSOR)

Where:

  • ‘Dtypes’ is a comma delimited string, with each value corresponding to a general type of data I want to retrieve. One data type may correspond to one or many different tables where distinct times need to be retrieved
  • ‘Start’ & ‘End’ are the two times I am querying between

I have written implementations that dynamically create the SQL using Unions to pull out only unique time values from each table. However, due to the dynamic nature of the ‘Dtypes’ argument, I am forced to generate this SQL in a loop control, and have not been able to figure a way to implement bind variables.

I believe that losing the benefit of bind variables may have caused the queries to take longer than necessary

So I am wondering, is there a way to either:

  • Associate bind variables with a dynamically created SQL string when the number of bind variables is completely variable with the arguments passed in to the procedure.
  • Take a different approach, where for each dtype – execute another stored procedure, or SQL Statement, store the recordset for each query, then merge the unique results and assign a cursor to the new results

Admittedly, I am quite new with PLSQL programming and haven’t had the opportunity yet to grab a good reference/book on the language. Any comments, insights, or suggested readings would be appreciated too.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T12:44:17+00:00Added an answer on May 22, 2026 at 12:44 pm

    I asked around and one of my friends came up with a solution that I successfully implemented today.

    Basically, I dynamically create the entire PLSQL block as a VARCHAR2 then assign the bind variables using EXECUTE IMMEDIATE. The benefit of this method provides is that I can now assign bind variables by name, instead of by position.

    Here is an example of what I mean:

    var rs_cursor refcursor
    
    DECLARE
      start_tm CONSTANT PLS_INTEGER := 989452800;
      end_tm CONSTANT PLS_INTEGER := 989452820;
      plsql_block VARCHAR(1024);
    BEGIN
      plsql_block := 'BEGIN ' ||
        'OPEN :rs_cursor FOR ' ||
        '  SELECT TIME ' ||
        '  FROM TBL_1 ' ||
        '  WHERE TIME BETWEEN :start_tm AND :end_tm ' ||
        '  UNION ' ||
        '  SELECT TIME ' ||
        '  FROM TBL_2 ' ||
        '  WHERE TIME BETWEEN :start_tm AND :end_tm ' ||
        '  ORDER BY TIME; ' ||
        'END;';
      EXECUTE IMMEDIATE plsql_block USING IN OUT :rs_cursor, IN start_tm, IN end_tm
    END;
    /
    
    print rs_cursor
    

    start_tm and end_tm are only needed to be passed in once, but apply to multiple binds within the PLSQL block

    My actual implementation is quite different than this, but it is using that specific functionality of EXECUTE IMMEDIATE binding variables by name to allow me to dynamically create SQL blocks based on whatever data types are provided to the procedure.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Given a package: create or replace package foo as f1 number := 1; end;
Given a type declared as shown below public class EqualityProbe<T> { public EqualityProbe( Func<T>
Given the following: declare @a table ( pkid int, value int ) declare @b
Given a specific DateTime value, how do I display relative time, like: 2 hours
Given a Python object of any kind, is there an easy way to get
Given a select with multiple option's in jQuery. $select = $(<select></select>); $select.append(<option>Jason</option>) //Key =
Given a DateTime representing a person's birthday, how do I calculate their age in
Given an absolute or relative path (in a Unix-like system), I would like to
Given 2 rgb colors and a rectangular area, I'd like to generate a basic
Given the URL (single line): http://test.example.com/dir/subdir/file.html How can I extract the following parts using

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.