在 PL/SQL 过程中,如何将表名作为参数传递?

2024-07-04

CREATE PROCEDURE A(tab IN <table - what should I write here?>) AS
BEGIN
   INSERT INTO tab VALUES(123);
END A;

我怎样才能指定参数tab是表名吗?


你不能。相反,您需要将其作为 VARCHAR2 字符串传递,然后使用动态 SQL:

CREATE PROCEDURE A(tab IN VARCHAR2) AS
BEGIN
   EXECUTE IMMEDIATE 'INSERT INTO ' || tab || 'VALUES(123)';
END A;

阅读有关动态SQL http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_dynamic_sql.htm并注意如果使用不当可能带来的问题,例如性能、可扩展性和安全性较差。

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

在 PL/SQL 过程中,如何将表名作为参数传递? 的相关文章

  • 将具有外键的第三个表中的记录复制到其他表

    我有三个表 表 1 作为主表 表 2 作为表 1 的详细信息 表 3 作为表 2 的详细信息 TABLE1 PK1 INTEGER FD1 VARCHAR 100 TABLE2 PK2 INTEGER FK1 INTEGER FD2 VAR
  • SQL Server 2012:插入和触发器之间的 DATETIME 差异

    我们遇到了一个非常奇怪的问题 当打电话时GETUTCDATE 第二个语句中的返回值比第一个语句稍早 我们的场景如下 我们插入一个表来跟踪用户当前状态 该表有一个触发器 可以将用户过去状态的关联历史表插入到DATETIME字段和插入调用GET
  • 更改 SQL Server 中的列

    什么是正确的语法ALTER语句向现有列添加默认值 我可以毫无错误地添加新列 ALTER TABLE tb TableName ADD Record Status varchar 20 但是如果我尝试使用以下语句更改现有列以应用默认值 ALT
  • 更改 SQL Server 中的列

    什么是正确的语法ALTER语句向现有列添加默认值 我可以毫无错误地添加新列 ALTER TABLE tb TableName ADD Record Status varchar 20 但是如果我尝试使用以下语句更改现有列以应用默认值 ALT
  • 上下文 sp_OAMethod“发送”中的 msxml3.dll

    Win2003 SQL Server 2005 中的工作代码在 Win2012 SQL Server 2012 sp1 下无法工作 唯一 真实solution https social msdn microsoft com 443 Foru
  • java.sql.SQLException:使用 IN 运算符时出现数字溢出

    我实现了一个 Java 应用程序 它使用以下查询根据给定的 id 集查询数据库 select from STUDENT where ID in 该组 id 将用于替换 但是 有时我会收到异常 Caused by java sql SQLEx
  • 我在 SQLAlchemy 中的关系出了什么问题?

    我将 SQLAlchemy 与 Flask 结合使用来为我的应用程序创建关系 我最近重写了这些关系 并且无论我如何更改 我都会不断收到错误 sqlalchemy exc NoForeignKeysError Could not determ
  • 除了结构化 XML 数据之外,还选择行数据

    我知道如何将 XML 变量连接到其他表 但在本例中 我尝试从表中选择每一行以及 XML 的结构从每个相应的表行 在那一行旁边 我无法在网上找到任何示例来帮助解决此问题 因为大多数示例都处理单个 XML 值 抱歉 如果有的话 我无法在无数其他
  • 数据库异常 - 一般错误:1021 磁盘已满

    谁能帮我理解为什么这个查询说光盘已满 数据库异常 SQLSTATE HY000 一般错误 1021 磁盘已满 tmp sql 1445 3 MAI 等待有人释放一些空间 错误号 28 设备上没有剩余空间 Query 这是服务器问题 只有楼主
  • SQL Loader 脚本帮助添加 SYSDATE、USER

    我正在尝试从文件加载数据 并且想将 CREATED DATE 和 UPDATED DATE 设置为 SYSDATE 将 CREATE BY 和 UPDATED BY 设置为 USER 这是我正在使用的表 CREATE TABLE CATAL
  • 在 db2 9.1 中删除过程/视图/表之前如何检查它是否存在?

    我们如何在 db2 中编写以下伪代码 If Proc exists Drop Proc Create Proc Else Create Proc 我在谷歌搜索后发现的一种解决方案是忽略返回码 我们有更优雅的方法来做到这一点吗 Thanks
  • 如何在 C# 中以编程方式创建 Microsoft Access 数据库?

    如果 Microsoft Access 数据库文件尚不存在 如何在 C 中创建它 最简单的答案是嵌入一个空的 mdb accdb文件写入您的程序并将其写入磁盘 正确的答案是将 COM Interop 与 ADOX 库一起使用 var cat
  • 如果条件不匹配,select 语句返回什么?

    例如 如果我有以下声明 declare uid int set uid select id from tablename where condition 在这种情况下 如果 select 没有返回结果 那么 uid be 简而言之 它将为空
  • 我如何记住 CONNECT BY 查询中 PRIOR 应该走哪条路

    我的记忆力很糟糕 每当我在 Oracle 中执行 CONNECT BY 查询时 我的意思是every时间 我必须认真思考 通常通过反复试验来确定 PRIOR 应该采用哪个论证 我不知道为什么我不记得了 但我不记得了 有没有人有一个方便的记忆
  • 如何在 MySQL 中排除周末和节假日日期并查找预期日期?

    我正在执行一项有两张桌子的任务 IE tickets and holidays 现在我也有完成票的天数了 现在我需要通过排除假期 在holidays表 和weekends 现在我可以使用查找日期ticket created date and
  • 复合主键:好还是坏?

    虽然可以使用复合主键 但是对于下面的情况 这真的是一种不好的做法吗 Stackoverflow 上的共识在这个问题上似乎是双向的 Why 我想将订单付款存储在单独的表中 原因是 一个订单可以有许多项目 这些项目以多对多关系的形式在单独的表中
  • 将datagridview的所有数据插入数据库vb.net

    Dim Con As OleDbConnection New OleDbConnection Provider Microsoft Jet OLEDB 4 0 Data Source Music Sales Database mdb Dim
  • 如何清除实体框架中的待定更改

    我有一些表数据DbContext我不想保存 我已经删除了数据库 重新设置了它 但是挂起的更改不会消失DbContext 重建数据库后 我的数据库表为空 但是当我将实体作为对象列表调用时 它仍然包含旧对象 关于如何清除旧的待处理数据有什么建议
  • Django QuerySet 中计算列的总和

    鉴于以下情况Contribution model class Contribution models Model start time models DateTimeField end time models DateTimeField n
  • 与数据库同步的基于 PHP 的数据库模型?

    Django 模型真的很酷 因为您可以在代码中定义所有模型 表 然后将其与数据库同步 这样 当您去更新生产服务器时 您只需运行迁移 同步脚本 并且不会忘记更新任何表 我现在正在从事的项目不是基于 Django 或 Python 而是用 PH

随机推荐

  • 实现 gensim.LdaMallet 时出错

    我按照此链接上的说明进行操作 http radimrehurek com 2014 03 tutorial on mallet in python http radimrehurek com 2014 03 tutorial on mall
  • OpenCV 中二值图像的 width 和 widthStep 不同

    我使用 cvLoadImage 在 OpenCV 中加载二进制图像 如下所示 IplImage myImg cvLoadImage
  • Windows 上的 Xvfb

    我正在使用 pyvirtualdisplay 使用无头 Firefox 浏览器运行测试 这是我正在使用的代码 from selenium import webdriver from selenium webdriver support ui
  • VB6 的线程模型是什么?

    我正在将一个古老的 VB6 程序移植到 C Net 我不太了解VB6 我问这个是为了更好地理解它 旧的VB6程序有一个程序执行的主过程 但是它also有许多用于套接字事件或计时器事件的事件处理程序 以及这些经常操纵的共享资源 例如 公共全局
  • 如何在CSS中搜索某些内容时隐藏搜索图标

    我想隐藏search当用户搜索某些内容时的图标 连我都想躲起来 保留图标和清除图标x就这样 问题如下图所示 NOTE 我想保持相同的差距search icon and Search text input type search width
  • React:将组件存储在对象中

    我的用户配置文件中有几十个字段 我正在尝试构建一种有效的方法来在适当的输入表单组件中显示它们 例如 配置文件可能如下所示 profile1 name Cornelius Talmadge phone 1 如果我可以像这样堆叠组件 expor
  • 处理本地存储库中的旧快照的最佳方法?

    我们有一个 Nexus 本地存储库管理器 用于处理我们所有的内部项目 以及外部存储库的镜像 对于我们的内部项目 我们只保留最新版本的快照构建 例如 如果我们有 ProjectX 1 0 1 1 和 1 2 SNAPSHOT 那么一旦 1 2
  • 如何使用 OpenID Connect WebFinger 端点?

    正在阅读描述在这里 https connect2id com learn openid connect optional endpoints它说 WebFinger 允许根据给定用户的电子邮件地址或其他一些信息动态发现 OpenID Con
  • 在 Fortran 中分配字符数组

    我必须编写一个可以由 C 和 Fortran 调用的子例程 该子例程将文件名作为其参数之一 我知道为了与 C 良好地互操作 ISO C 绑定建议使用字符数组进行互操作 我的问题是 是否存在易于编写的字符数组文字之类的东西 我有一个这样的子程
  • 使用 Powershell 脚本开始调试 Visual Studio 项目

    我曾经在 Visual Studio 中打开解决方案文件 右键单击项目 选择 调试 gt 启动新实例 来启动调试会话 我可以编写一个 powershell 脚本来自动执行此操作吗 为了让事情变得更简单 自动化不必重建和项目 脚本只需要在 V
  • Grails:未刷新的会话和回滚的事务之间有什么区别?

    我对会话和交易感到非常困惑 我基本上不明白两者都有什么意义 而且我很困惑何时使用其中之一 未刷新的会话和未提交的事务有什么区别 我什至不知道如何询问我不知道的事情 是否有资源可以提供常见会话和事务情况的良好示例 以便我可以看到差异 一般来说
  • Docker 容器中 GUI 应用程序的 X11 转发

    我目前正在尝试在 docker 容器中运行一些 GUI 应用程序 我一直在尝试那些杰西 弗雷泽尔 https github com jessfraz at github https github com jessfraz dockerfil
  • 通过 ref 传递的引用类型和不通过 ref 传递的引用类型

    以不同方式调用 4 种方法时得到不同的结果 static void Main string args var emp new Employee Name ABC ChangeName1 emp Console WriteLine emp N
  • 如何在 Mongoid 中引用嵌入文档?

    使用 Mongoid 假设我有以下类 class Map include Mongoid Document embeds many locations end class Location include Mongoid Document
  • Bootstrap 导航栏覆盖缩放内容

    我正在为导航栏构建一个带有 navbar fixed top 类的网站 它在所有方面都工作正常 除了放大时 当我在移动设备上放大时 导航栏开始换行并在折叠后转到下一行 但是 我不希望导航栏在放大时受到影响 但同时保持对不同设备的响应能力 这
  • Spreadsheet.getNamedRanges() 不返回 DELETED 工作表中定义的 NamedRanges

    我有一个复杂的电子表格 其中每个选项卡都有许多在不同工作集中定义的命名范围 例如 Tab A Tab B Tab X 我试图将此电子表格分解为较小的独立电子表格 假设独立电子表格 1 只有 Tab A Tab B 方法是首先复制原始大型电子
  • 在另一种形式的成功回调中使用 AngularJS 和 bluimp 上传文件

    我已遵循下列的 http code like a poem blogspot co il 2013 05 angularjs tutorial 4 file upload using html教程 以便将臭名昭著的 bluimp jQuer
  • java.lang.VerifyError:需要堆栈图框架

    有没有办法将自定义 HttpServlet 加载到 GAE 我上传了一个项目 其中包含 server 包中的 HttpServlet 并将其添加到 web xml 中
  • 如何在 razor 中创建 JavaScript 字符串

    我看过一些关于这个主题的帖子和一些博客 但似乎没有提到我得到的输出 我想要的是生成一个带有信息的谷歌地图 手动输入信息会产生正确的信息 所以这部分有效 当我要使用包含我想要在地图上显示的信息的字符串动态创建 JavaScript 数组时 我
  • 在 PL/SQL 过程中,如何将表名作为参数传递?

    CREATE PROCEDURE A tab IN table AS BEGIN INSERT INTO tab VALUES 123 END A 我怎样才能指定参数tab是表名吗 你不能 相反 您需要将其作为 VARCHAR2 字符串传递