【问题标题】:Table as a variable Oracle表作为变量 Oracle
【发布时间】:2021-09-24 03:47:44
【问题描述】:

是否可以从 Oracle 中的变量中检索表名?

我想做这样的事情:

DECLARE
    v_tab VARCHAR2(200) := adm.t4_to@wtaa;
    cnt   NUMBER;
BEGIN
    SELECT Count(*)
    INTO   cnt
    FROM   v_tab;
END; 

当我尝试运行该块时出现错误:

Error report -
ORA-06550: linia 3, kolumna 24:
PLS-00224: object 'adm.t4_to@wtaa' must be of type function or array to be used this way

【问题讨论】:

  • 它是可变的,所以不能在查询中选择。提供有关您的请求的更多详细信息。
  • 是的,但有没有其他方法可以做到这一点?
  • 让更多关于您的请求的细节。
  • 我需要一个带有两个参数的过程,其中一个应该是表的名称。我不想写一个有很多联合和 ifs 的过程
  • 但是你为什么使用这个查询? SELECT Count(*) INTO cnt FROM v_tab;

标签: sql oracle plsql ora-06550


【解决方案1】:

使用这个

DECLARE
  v_tab VARCHAR2(200) := 'adm.t4_to@wtaa' ;
  cnt   NUMBER;
BEGIN
  Execute immediate 'SELECT Count(*) from ' || v_tab 
  INTO   cnt;
END; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 2019-04-04
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多