当前位置: 首页 > 面试题库 >

oracle SQL查询可以执行从表中选择的字符串查询吗?

楚钊
2023-03-14
问题内容

使用oracle SQL时,是否可以基于子查询中的text_string运行查询?一个例子可以阐明我要做什么

    select count(sql_text), sql_text
    from
        (select sql_text 
        from query_table) sql_table
    group by sql_text;

外部查询旨在计算从query_table中检索到的每个查询的结果数。

有什么方法可以执行在同一查询中从query_table中检索到的sql语句?

谢谢

编辑:我能够使用dbms_xmlgen.get_xml()函数从表中查询sql。我想任何导致sql被解析和执行的命令都可以工作。话虽如此,这是我能够完成事情的通用代码

    select  to_number (
        extractvalue(
        xmltype(
        dbms_xmlgen.getxml('select count(*) c from '|| table_name)), '/ROWSET/ROW/C'))counter,
        sql_text
    from
        (select '('||sql_text||')' table_name 
        from query_table) sql_table;

尽管这也许不是最优雅的处理方式,但它可以工作并且只有一条sql语句。


问题答案:

通常,这不是一个特别好的设计-将SQL存储在表中并动态执行它会带来各种安全和维护问题。

可能有可能(尽管在星期五开始的时间太晚了,以至于我想找出答案还为时过早),按照此查询的方式对每张表运行count(*),可以进行一个非常酷的XML查询在一个查询中可以完成所有操作的架构中。

但是,对于绝大多数程序员而言,更简单的方法是遍历查询,一次运行一个查询,并将结果存储在某个地方。例如,可能会将局部变量添加到计数集合中。

FOR q IN (SELECT sql_text FROM query_table)
LOOP
  EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM (' || q.sql_text || ')'
     INTO some_local_variable;
  <<do something with the local variable>>
END LOOP;

由于您尝试创建视图,因此可以采用此逻辑并将其放入流水线表函数中。您可以做一个PIPE ROW在循环内返回数据的操作。然后可以在流水线表函数的顶部创建视图。



 类似资料:
  • 我刚开始冬眠。我有两张桌子,有一对多的关系。有两个表格: 这是一个父类,它与图像表有一对多关系 现在我想使用父类的id(即:pashminaId)从类中选择一个 如: 选择IMAGE_NAMETBL_IMAGEPASHMINA_ID='some_digit'; 我怎么能在图像类中传递pashminaId,因为没有它只有一个父类的对象创建。 那么,我如何在Hibernate中实现这一点? 谢谢!希望

  • 问题内容: 我有一个由一些条件创建的复杂查询,我想从将要执行的构建器对象中获取最终的SQL查询。我可以那样做吗? 问题答案: 您可以执行以下操作: 但是Laravel不会在查询中向您显示参数,因为它们是在准备查询后绑定的。 因此,您也可以执行以下操作:

  • 我有一个由字符串表示的查询: 这里的问题是,我实际上是在执行两个查询。这就引入了开销。 是否可以将string-query作为真正的子查询执行?不知何故,我必须将字符串查询转换为实例(我猜),但我找不到如何做到这一点。

  • 问题内容: 我有这样的数据: 我期望的输出是 我想在SQL中实现它。 问题答案: 首先创建这个 现在使用 as SQL字段 我希望这可以解决您的问题。

  • 问题内容: 我有一个SQL Server查询,该查询为一个MyBusinessUnit列返回两个值,并返回两个值,例如: 1111 2222 在名为 这两个值也都存在于DB2数据库的列中。 我想要的是从DB2表中选择所有匹配的记录-而且,没有,跨数据库查询不起作用。 因此,这是我的DB2数据库: 但是Query2仅返回仅一个值的匹配记录(1111)。 因此,需要其他一些方法。我试图创建一个字符串,

  • 我创建了3个表:Employee、Department和EMPDept。 1)员工表字段为 我不知道在第三个表(即EmpDept)中包括哪些字段,以及如何将join应用于选择列 我的尝试