使用动态表名称查询 Oracle 数据库

2024-01-04

我陷入了一些糟糕的数据库设计中,我必须查询按日期命名的表。

当表名称与相关日期进行硬编码时,以下查询有效。

SELECT
  ajob.ORDER_ID
     , ajob.JOB_NAME
     , abim.SERVICE_ID
     , shist.SERVICE_NAME
  FROM
    obscuredschema.A190129001_AJOB               ajob --hardcoded YYMMDD table name
    INNER JOIN obscuredschema.A190129001_ABIMSVC abim --hardcoded YYMMDD table name
               ON (ajob.ORDER_ID = abim.ORDER_ID)
    INNER JOIN obscuredschema.SERVICE_HIST       shist
               ON (abim.SERVICE_ID = shist.SERVICE_KEY)
WHERE shist.SERVICE_NAME LIKE '%BIM'
  AND shist.BIM_AUTH_ID > 0
;

记下两个硬编码的表名称(以及别名)

如何使用动态表名执行相同的查询?(有两个)

动态日期的代码:TO_CHAR(trunc(sysdate - 7), 'YYMMDD')

如果第一个表名称是字符串,那么我将如何构建它:'A'||TO_CHAR(trunc(sysdate - 7), 'YYMMDD')||'001_AJOB'

如果第二个表名称是字符串,那么我将如何构建它:'A'||TO_CHAR(trunc(sysdate - 7), 'YYMMDD')||'001_ABIMSVC'


我不认为你可以用动态表名编写简单的 SQL 查询。

您可以编写一个 PL/SQL 过程,其中使用execute immediate并返回一个光标或其他东西;昨天有人问过这个问题 https://stackoverflow.com/questions/54520373/append-date-to-string-to-get-table-name-in-oracle-and-do-select-query-on-it。如果您只是尝试编写此查询来与某些数据交互,那么这可能是您最好的选择。

此外,您可以通过将 PL/SQL 过程转变为流水线函数 https://www.akadia.com/services/ora_pipe_functions.html,然后您可以使用 SQL 查询调用它TABLE().

如果是我,我会考虑创建一个同义词(或一个仅从动态命名表中选择的标准视图),并安排一个作业在每次创建新表时重新创建它。这可能比处理管道函数更简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用动态表名称查询 Oracle 数据库 的相关文章

  • 这是过滤数据并防止 SQL 注入和其他攻击的安全方法吗?

    我创建了两个简单的函数来在插入数据进入 mysql 查询之前对其进行过滤 对于表单字段 我还使用正则表达式来单独检查每个字段 Form filter function filter var HTML is not allowed var s
  • 更新每组单行

    的背景 我有一个临时表 其中包含唯一的 rowID OrderNumber 和 guestCount 等信息 RowID 和 OrderNumber 已存在于该表中 并且我正在运行一个新查询来填充每个 orderNumber 缺少的 gue
  • SQL 插入失败 - 违反主键约束

    我在 SQL Insert 语句中看到一个非常奇怪的问题 我有一个简单的表 带有一个 ID 和 2 个日期时间 请参阅下面的创建脚本 CREATE TABLE dbo DATA POPULATION LOGS ID int IDENTITY
  • 如何在sqlite中添加特定数量的空行?

    我有一个SQLite文件 我想添加2550 empty NULL rows 我可以使用此代码添加一个空行 INSERT INTO my table DEFAULT VALUES 但我需要 2550 行 有什么捷径吗 我不想执行相同的代码 2
  • 在 Sql Server 中启用 DTD 支持

    我有各种 xml 文档需要存储在数据库列中 这些文档包含对 DTD 的引用 并且 SQL Server 不会导入 xml 因为它存在安全风险 如何在数据库上启用 DTD 支持 以便它可以让我插入 xml 内容 你必须CONVERT首先 MS
  • 将 5 gig 文件导入表时出错

    我正在尝试批量插入表 use SalesDWH go BULK INSERT dbo npi FROM S tmp npi csv WITH FIELDTERMINATOR ROWTERMINATOR n lastrow 200 first
  • 关系代数 - 笛卡尔积与自然连接?

    我正在准备考试 但未能找到一个可靠的标准来确定笛卡尔积是否x要使用或者如果自然连接 X 是要使用的 我想出了一个粗略的指南 如果您需要投影与要连接的表中的属性同名的属性 则必须使用x并说明要投影的表名称 tableA colname1 ta
  • PDO 连接字符串:最好的方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想使用 php pdo 制作一个后端应用程序 我发现了很多不同的方法来处理 PDO 连接字符串 我想知道使用 pdo 执行连接字符串的最佳方法
  • 当您执行“SELECT *”时,SQL Server 如何确定列的顺序?

    当您执行以下操作时 SQL Server 如何确定列的顺序SELECT 我知道 订购依据 对于订购至关重要data 但我预计列名保持一致 注意 我的代码是not取决于返回列的实际顺序 我只想知道 SQL Server 如何决定对列名进行排序
  • MySQL创建表中的日期格式

    我必须使用 MySql 创建一个表 它可以按以下格式存储日期 我尝试过如下 CREATE TABLE birth date DATE 但它不起作用 因为日期格式是 YYYY MM DD 我该怎么办 谢谢 MySQL 或几乎任何其他数据库 中
  • MySQL中如何重置表的自增列

    我有一张桌子 它的第一列sl是自动递增的 填充表格后 我删除了前两行 第一个条目有sl1 是否可以重置为1维持AI 我正在使用 PHP MyAdmin ALTER TABLE tablename AUTO INCREMENT 1
  • MySQL如何在没有过程/函数的情况下执行命令块

    我尝试在 MySQL Workbench 上运行一段 SQL 命令 就像在 SQL Server 上一样 但它告诉我 声明在此位置无效 我在网上看到了各种这样的例子 我真的不明白为什么会出现这个错误 一些提示 代码 其中 SQL Serve
  • sql连接一个表中的两个字段

    我有一个预订表 其中有两个人 我想将 person 1 作为一行返回 将 person 2 作为新行返回 但该人的 id 与人员表相关 这是我所得到的 但没有提取预订信息 SELECT people FROM select booking
  • SQL 查询中的可选参数在检查 NULL 时非常慢

    我有许多已连接的表 最大行数约为 400 万条记录 我们正在存储过程中搜索该表 并且有一个默认值为 NULL 的可选参数 下面是我们正在运行的编辑示例 连接涉及更多表 但只有 1 个字段具有 WHERE 子句 DECLARE OwnerId
  • SQL最近的命令?微软SQL

    我只是编写一个查询来查看我的客户数据库并列出他们下了多少订单等 我正在努力添加到此查询中的是只显示该电子邮件的最新 OrderID 有任何想法吗 这是我的查询 select top 1000 BuyerEMail COUNT HowMany
  • Oracle 更新/插入卡住、DB CPU 为 100%、并发度高、来自客户端的 SQL*Net 等待消息

    我们有一个 JavaEE 应用程序在 Weblogic 上针对 Oracle 11g DB 运行 使用瘦 JDBC 驱动程序 最近 我们在生产中发生了一系列事件 其中某个表的更新和插入被卡住或花费的时间比正常情况长得多 而且没有明显的原因
  • SSRS 报告 - IIF 声明问题

    做一个表达式时出现错误 有人可以在这里告诉我正确的语法吗 IIf Fields t cpcp Value 310 Purchased Material Raw Material Nothing IIf Fields t cpcp Value
  • SQL Server 为什么索引不与 OR 一起使用

    我一直在研究索引并试图了解它们是如何工作的以及如何使用它们来提高性能 但我错过了一些东西 我有下表 Person Id Name Email Phone 1 John E1 P1 2 Max E2 P2 我正在尝试找到对列进行索引的最佳方法
  • JDBC元数据检索约束信息

    我需要来自约束名称的有关表和列名称的信息 是否存在类似于connection getMetadata getX的人来检索约束信息 我的测试用例在Oracle数据库中 但我最好的解决方案只是想用jdbc来解决 如果您正在谈论外键和主键约束 这
  • 有没有适用于 Eclipse 的 SQL 格式化插件?

    我在网上没有找到任何标准的开源 sql 格式化程序 eclipse 插件 我正在使用日食太阳神 我可以找到编辑 gt 格式化SQL但这似乎不起作用 找到一个在http ventralnet blogspot in 2010 11 sql b

随机推荐

  • Cucumber:填写带双引号的字段

    我有一些 Rails 应用程序 一个带有字段的视图 可以说它叫做 some field 我想填写 SOME STRING WITH QUOTES 字段 我怎样才能在黄瓜中做到这一点 When I fill in some field wit
  • 如何使用 Yii2 kartik gridview 可编辑列与多个模型关系

    问题 我有 2 个模型 用户模型和用户配置文件模型 两者都与主键和外键 user id 相关 用户表有字段 id 用户名 密码 电子邮件等 user profile表包含id user id 公司 电话等 我在用户视图中创建了gridvie
  • 没有html的innerHTML,只有文本[重复]

    这个问题在这里已经有答案了 我创建了一个电子邮件链接 它会自动填充正文中的必要信息 但是 当我执行 innerHTML 时 我得到的比我预想的要多一些 我想要 2012 年 3 月 12 16 我得到什么 b March 2012 b fo
  • 有没有办法更改谷歌一键提示的语言?

    目前 谷歌一键提示仅以英文呈现 有没有一种方法可以将区域设置传递给 javascript api 以便以该特定语言呈现提示 抱歉这么晚才回复 但是我最近遇到了同样的问题 官方文档没有提供处理提示本地化的直接方法 我发现的最接近的想法是 li
  • 如何获取hive UDF中的taskID或mapperID(类似于Spark中的partitionID)?

    作为问题 如何在 hive UDF 中获取任务 ID 或映射器 ID 类似于 Spark 中的分区 ID 您可以使用 TaskContext 访问任务信息 import org apache spark TaskContext sc par
  • Facebook oauth 授权 URL 和参数选项

    Facebook 提供了一些关于参数的文档oauth login 登录对话框 OAuth 2 https developers facebook com docs reference dialogs oauth 参数为 client id
  • Java 6 中 IdentityHashMap 的实际使用[重复]

    这个问题在这里已经有答案了 可能的重复 IdentityHashMap 的用例 https stackoverflow com questions 838528 use cases for identityhashmap Java 5 中引
  • Android ActionBarSherlock 顶部图标返回

    我正在尝试制作顶部操作栏图标以允许用户返回到上一个屏幕 我试图实现这些代码 但没有一个起作用 任何人都可以指导我吗 我知道这看起来很简单 我是 android 新手 下面是我的代码 问题 当我点击图标按钮时 它只是清除了我的屏幕 而没有转到
  • com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'

    错误 无法找到方法 com android build gradle api BaseVariant getOutputs Ljava util List 导致此意外错误的可能原因包括 Gradle 的依赖项缓存可能已损坏 这有时会在网络连
  • 如何确定 ColdFusion 应用程序使用哪些文件?

    我正在开始对现有的 ColdFusion 应用程序进行一些工作 该应用程序没有版本控制 并且看起来像是未使用的 cfm 文件 test cfm test2 cfm 等 我想了解哪些文件实际上是应用程序的一部分 这样我就可以将其以可管理的状态
  • VBScript 环境变量

    我有一个关于应该如何修复运行脚本时看到的错误的问题 我很确定这与我使用 COMPUTERNAME 环境变量的方式有关 我的脚本的作用是在本地压缩一些文件 然后使用 robocopy 将它们复制到已安装或共享的驱动器 然后检查文件大小是否相同
  • 将新记录添加到 GridView 但不应更新数据库

    我有一个绑定到数据视图的网格视图 OnPageLoad 我正在填充网格视图记录 我有一个文本框和一个按钮 所以现在我想向 GridView 添加更多记录 但这些记录不应添加到数据库中 它们只是添加到页面中 当然来自数据库的默认记录也会保留
  • Python 中的就地函数

    Python中有一个就地函数的概念 例如shuffle就位 因为它返回None 如何确定函数是否就位 from random import shuffle print type shuffle
  • Javascript 中的函数是对象还是类型?

    In his 雄辩的 JavaScript Haverbeke 声称 第 16 页 在 JavaScript 系统中 大部分数据被整齐地分成称为值的东西 每个值都有一个类型 它决定了它可以扮演的角色 值有六种基本类型 数字 字符串 布尔值
  • Herkou Redis - 证书验证失败(证书链中的自签名证书)

    我在我的一个业余项目中使用 heroku redis 一段时间了 我目前用它来做三件事 它是我存储 firebase 证书的地方 它用于缓存站点上的数据 它用于 Rails sidekiq 作业 最近 我的 heroku 使用量增加了 我不
  • 自动释放池中的快速闭包访问没有 self 的方法

    这是示例代码 func anyMethod Nothing here var myVariable autoreleasepool anyMethod This should show error print myVariable This
  • 异步网络接口状态检查

    在 Mac OS X 上 有没有办法在网络接口 en0 en1 状态发生变化 例如网络接口处于活动状态 非活动状态等 时获取异步通知 我想知道是否有一种方法可以获取异步通知 而不是轮询状态 以便每当有更改时 都会触发通知并且应用程序可以处理
  • scikit SGDClassifierpartial_fit 不会增量学习。返回“类应包含所有有效标签”

    我将两个数据流传递给 sgd clf 分类器 如下面的代码所示 第一个partial fit 正在获取第一个数据流x1 y1 第二个partial fit 正在获取第二个数据流x2 y2 下面的代码在第二个partial fit步骤中给了我
  • ggplot2 中的注释不支持换行符是粘贴和解析的命令

    Question 如何得到paste and parse in annotate of ggplot2尊重换行符 n 问题和MWE 我正在尝试重现ggplot2使用 NMDS 分析的应力图metaMDS包装内vegan 这是我的 MWE 后
  • 使用动态表名称查询 Oracle 数据库

    我陷入了一些糟糕的数据库设计中 我必须查询按日期命名的表 当表名称与相关日期进行硬编码时 以下查询有效 SELECT ajob ORDER ID ajob JOB NAME abim SERVICE ID shist SERVICE NAM