首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将模式名和表名作为输入,然后在plsql中获得内存大小和row_count作为输出

在PL/SQL中,可以使用动态SQL语句和数据字典视图来实现根据模式名和表名获取内存大小和行数的功能。

下面是一个实现此功能的示例代码:

代码语言:txt
复制
CREATE OR REPLACE PROCEDURE get_memory_size_and_row_count(p_schema_name VARCHAR2, p_table_name VARCHAR2, p_memory_size OUT NUMBER, p_row_count OUT NUMBER) AS
  v_sql VARCHAR2(1000);
BEGIN
  -- 构建动态SQL语句
  v_sql := 'SELECT BYTES, NUM_ROWS FROM ALL_TABLES WHERE OWNER = ''' || p_schema_name || ''' AND TABLE_NAME = ''' || p_table_name || '''';

  -- 执行动态SQL语句并获取结果
  EXECUTE IMMEDIATE v_sql INTO p_memory_size, p_row_count;
END;
/

使用示例:

代码语言:txt
复制
DECLARE
  v_memory_size NUMBER;
  v_row_count NUMBER;
BEGIN
  -- 调用存储过程并传入模式名和表名
  get_memory_size_and_row_count('SCHEMA_NAME', 'TABLE_NAME', v_memory_size, v_row_count);

  -- 输出结果
  DBMS_OUTPUT.PUT_LINE('Memory Size: ' || v_memory_size || ' bytes');
  DBMS_OUTPUT.PUT_LINE('Row Count: ' || v_row_count);
END;
/

解释:

  1. 创建一个名为get_memory_size_and_row_count的存储过程,该过程接收模式名和表名作为输入参数,并将内存大小和行数作为输出参数返回。
  2. 在存储过程内部,构建动态SQL语句,使用ALL_TABLES数据字典视图查询指定模式和表的内存大小和行数。
  3. 使用EXECUTE IMMEDIATE语句执行动态SQL语句,并将查询结果赋值给输出参数。
  4. 在主程序中声明两个变量,用于接收存储过程的输出参数。
  5. 调用存储过程并传入模式名和表名。
  6. 使用DBMS_OUTPUT.PUT_LINE语句输出内存大小和行数的结果。

注意:上述示例代码中,使用了ALL_TABLES数据字典视图来获取表的内存大小和行数。在实际应用中,可以根据具体的需求使用其他相关的数据字典视图或系统表。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PLSQL的使用「建议收藏」

执行快捷键为:F8 有的老版本执行语句的按钮是这个样子: (真丑) 1.5PLSQL查看数据库结构 如下界面,按住Ctrl键并将鼠标移动到一个,此时变了颜色并出现下划线: 点击,...便可显示结构,如下图: 1.6PLSQLSQL语句的注释 或者按照如下方法: 1.7 对查询结果进行修改、插入行、删除行并保存 修改 SELECT语句后加FOR UPDATE,再执行,结果如下...导入表格数据 直接在Excel复制行,粘贴到PLSQL的查询结果区即可。...存储过程的测试 首先找到存储过程(Package bodies),点击右键选择“Edit Spec & Body”,如下图: 进入“包”后,选择要测试的存储过程点击右键,选择“Test”,如下图: 存储过程测试页面下方是该存储过程定义的输入输出变量...填写输入变量,点击左上角键 键 ,执行存储过程。 :编译。 :单步执行。 :执行到下一断点。 :进入方法。 :跳出方法。

9K11

SQL定义(一)

默认模式名执行DDL操作(例如创建或删除、视图、触发器或存储过程)时,会提供一个非限定名称作为默认的模式名。 架构搜索路径值将被忽略。...系统管理,选择Configuration,然后选择SQL对象设置,然后选择SQL。 在这个屏幕上,可以查看编辑当前系统范围内的默认模式设置。 这个选项设置系统范围的默认模式名。...每个在其模式中都有一个唯一的名称。 一个有一个SQL一个对应的持久化类; 这些名称允许的字符、区分大小写最大长度方面有所不同。...试图指定“USER”或任何其他SQL保留字作为或模式名会导致SQLCODE -312错误。 要指定SQL保留字作为或模式名,可以指定名称作为带分隔符的标识符。...当转换为对应的持久化类时,删除超过220个字符时,模式的组合长度可以超过220个字符。RowID字段SQL,每条记录都由一个唯一的整数值标识,这个整数值称为RowID。

1.3K10
  • 如何使用python计算给定SQLite的行数?

    计算 SQLite 的行数是数据库管理的常见任务。Python凭借其强大的库对SQLite的支持,为此目的提供了无缝的工具。...本文中,我们将探讨如何使用 Python 有效地计算 SQLite 的行,从而实现有效的数据分析操作。...本文结束时,您将拥有从任何 SQLite 检索行计数的知识工具,使您能够项目中做出明智的决策优化。 首先确保 Python SQLite 库作为先决条件安装。...参数化查询 在前面的示例,我们使用字符串内插直接将插入到 SQL 查询字符串。但是,如果由用户输入提供,则这可能会导致 SQL 注入漏洞。...cursor.execute(query, (table_name,)) 通过使用占位符(本例为 ?)并将名称作为单独的参数传递,可以确保正确清理并防止任何潜在的 SQL 注入攻击。

    40220

    LinuxPLSQL视频,PLSQL使用视频教程:PLSQL的使用方法「建议收藏」

    不少小伙伴对PLSQL的应用还不是很了解,大家不必担心,PLSQL使用视频教程中会告诉大家如何使用PLSQL。...初次登录PLSQL: 登录信息保存功能设置: 这样第一次通过用户名/密码登录某数据库后,下次就不用再输入用户名/密码了。...执行快捷键为:F8 有的老版本执行语句的按钮是这个样子: PLSQL查看数据库结构 如下界面,按住Ctrl键并将鼠标移动到一个,此时变了颜色并出现下划线: 点击,便可显示结构,...导入表格数据 直接在Excel复制行,粘贴到PLSQL的查询结果区即可。...(注意Excel多加一列) 存储过程的新建、保存、测试 左边“Packages”点击右键,选择“New”,新建存储过程,右边自动创建“包”“包体”: 点击“F8”键,执行存储过程并自动保存。

    1.2K10

    用于修改配置的存储过程 | 全方位认识 sys 系统库

    本系列前面用了大量篇幅介绍完了 sys 系统库的视图,利用这些视图我们可以方便快捷地查询到performance_schema、information_schema下的内容,但对于performance_schema...ROW_COUNT()函数作为返回值,该函数只记录实际发生变更的行) 传入的参数字符串使用 like %in_pattern%;的形式模糊匹配setup_instruments的name字段 参数:...,调用时传入值作为存储过程内部语句的name字段值,修改enabledtimed字段为YES,返回一个已启用的instruments数量(已经处于启用状态的instruments不会计数,因为是使用ROW_COUNT...not in ('xxx'...)来删除除了默认配置行之外的配置行,然后按照默认的配置行字段值重新更新这些默认配置行(使用delete,INSERT IGNORE INTO语句),对于threads...()存储过程需要在同一个会话执行,因为配置是保存在TEMPORARY,另外,如果在执行了sys.ps_setup_save()存储过程之后没有调用sys.ps_setup_reload_saved

    1.7K30

    问题小结

    一.单元格换行问题report_res\skin\table.css下.ss{word-break: break-all;line-height:1;}单元格属性,WEB相关设置,CSS样式名里添加ss...,选择不作为表达式处理。...二.皕杰报表单元格显示特殊字符使用皕杰报表的时候经常遇到特殊字符的输入,比如显示小方块或小方块里带√号,那么这些特殊符合如何输入呢?...三.如何改变报表页面显示的大小位置?报表页面显示的大小位置可以通过URL后面添加servlet参数的方式来控制。...控制页面大小的参数有两个,一个是rptwidth,一个是rptheight,分别代表报表页面的输出宽度高度,支持像素百分比。控制报表页面位置的参数有一个,hlayout。

    40260

    连接远程数据库ORACLE11g,错误百出!

    Net Manager或者NCA更改监听或者服务的信息后可能会映射到这两个文件,例如我Net Manager更改了LISTEN的地址,listener.ora文件是有体现的,可以打开看看,...,将它复制到任意位置,例如:D:\PLSQL Developer 12\ D:\PLSQL Developer 12\instantclient_12_2(以下简称{instantclient})新建文件夹...然后connection安装图示设置,instantclient的位置。 ? 很重要的一步,到虚拟机注册查看NLS_LANG的值,若无此路径则直接查找NLS_LANG,复制此键值。 ?...重新打开PLSQL DEV,尝试连接,填写用户名密码,database下拉框如果没有出现之前tnsnames.ora首行写的名字STD,就手动输入STD,并作为SYSDBA连接。...至于最后一个问题,请检查环境变量的NLS_LANG的值是否远程主机注册的值相同,切记不要手敲!如果还是这个问题,可能是你刚配置完环境变量,cmd的命令框还是之前开的,请重开一个cmd再次尝试。

    78500

    SQL使用(一):如何使用SQL语句去查询第二高的值

    SQL查询应该返回 200 作为第二高的薪水。...,可以使用maxmin去查询出来,但对于第N的就不好找了,思考了一会儿了,心里大致有二个思路: 第一个思路,因为是求的第二高,那就把最高的找出来,小于的它的,然后再排列一下取最大的就行了 # 1、求最大的值...这道题主要考察的知识点就是LIMIT的使用对NULL的处理,之前写过一篇与LIMIT有关的文章,LIMIT实际使用过程使用情况非常普遍。...row_count 表示 返回的记录数 # offset为偏移量,表示从哪条数据开始返回,使用过程也可以省略 举例: 1、查询出雇员的5条记录 select * from Employee limit...最后给大家留一个变种之后难度更高的题,欢迎大家留言区给出答案: 编写一个 SQL 查询,获取 Employee 第 n 高的薪水(Salary)。

    5.5K10

    Soda Core:最简单的开源数据可靠性工具

    数据可靠性对于在当今数据驱动的业务环境取得成功至关重要。它有助于企业做出明智的决策、高效运营、遵守法规、满足客户需求以及获得竞争优势。...它利用用户定义的输入来准备 SQL 查询,对数据源的数据集运行检查,以查找无效、丢失或意外的数据。当检查失败时,它们会显示您在检查定义为“不良”的数据。...当您使用 Soda Core 对源的数据运行扫描时,可以扫描命令引用配置检查 YAML 文件。...二、使用 Soda Core 的端到端数据可靠性项目 数据库 Soda 核心配置 在这个项目中,我将使用我本地的Postgres数据库作为主要数据源来连接扫描。...另外,我将演示同一个 check.yml 文件,我们可以一次检查多个

    72930

    连接远程数据库ORACLE11g,错误百出!

    Net Manager或者NCA更改监听或者服务的信息后可能会映射到这两个文件,例如我Net Manager更改了LISTEN的地址,listener.ora文件是有体现的,可以打开看看,...,将它复制到任意位置,例如:D:\PLSQL Developer 12\ 4.D:\PLSQL Developer 12\instantclient_12_2(以下简称{instantclient}...7.然后connection安装图示设置,instantclient的位置。 ? 8.很重要的一步,到虚拟机注册查看NLS_LANG的值,若无此路径则直接查找NLS_LANG,复制此键值。...13.重新打开PLSQL DEV,尝试连接,填写用户名密码,database下拉框如果没有出现之前tnsnames.ora首行写的名字STD,就手动输入STD,并作为SYSDBA连接。...至于最后一个问题,请检查环境变量的NLS_LANG的值是否远程主机注册的值相同,切记不要手敲!如果还是这个问题,可能是你刚配置完环境变量,cmd的命令框还是之前开的,请重开一个cmd再次尝试。

    1.6K00

    Oracle如何创建数据库

    使用MySQL或SQLServer时,我们不需要去关心它们的逻辑结构物理结构。 但是使用Oracle的时候,我们必须明白Oracle逻辑结构物理结构。...(MARK 补充这部分知识) 逻辑结构,Oracle从大到下,分别是如下的结构:数据库实例 -> 空间 -> 数据段() -> 区 -> 块。...也就是说当我们要使用Oracle作为项目的数据库时,我们需要先创建数据库实例,之后创建空间,再创建相对应的(也就是逻辑结构的数据段)。...二、创建空间 创建空间必须先登录数据库,你可以使用Oracle自带的sqlplus或plsql登录(当然还可以用OEM)。这里用plsql登录。...即使你创建空间的时候输入空间是小写的,也还是要大写。因为ORACLE存储空间的时候自动将名字转化成大写了。

    5.2K31

    数据库系统:第三章 关系数据库标准语言SQL

    如果没有指定 ,则 隐含等于 要创建模式,调用该命令的用户必须拥有DBA权限,或者获得了DBA授予的CREATE SCHEMA权限(安全性)。...模式与 每个基本都属于某个模式,一个模式包含多个基本,定义基本有三种方式定义其所属模式: 明显的给出模式名 创建模式时同时创建 设置所属的模式,创建时不必给出模式名,类似缺省。...创建基本(其他数据库对象也一样)时,若没有指定模式,系统根据搜索路径来确定该对象所属的模式,搜索路径包含一组模式列表,关系数据库管理系统会使用模式列表第一个存在的模式作为数据库对象的模式名,若搜索路径的模式名都不存在...] ; 是要修改的基本; ADD 子句用于增加新列、新的列级完整性约束条件新的级完整性约束条件; DROP COLUMN 子句用于删除的列: 如果指定了 CASCADE 短语,则自动删除引用了该列的其他对象...建立索引 CREATE [UNIQUE] [CLUSTER] INDEX ON ([][,[] ]…); 用指定要建索引的基本名字 索引可以建立的一列或多列上

    2.6K10

    SqlAlchemy 2.0 中文文档(三十九)

    作为最佳实践,请确保数据库的“默认”模式只是一个单一称,而不是名称列表;对于属于此“默认”模式并且可以 DDL SQL 不带模式限定命名的,请将相应的Table.schema类似的模式参数设置为它们的默认值...一些数据库,如 PostgreSQL,将这个概念进一步扩展为 模式搜索路径,特定数据库会话可以考虑多个模式名称为“隐式”;引用其中任何一个模式都不需要存在模式名称(与此同时,如果模式名称存在...作为最佳实践,请确保数据库的“默认”模式只是一个单一称,而不是名称列表; 对于属于此“默认”模式并且可以 DDL SQL 无需模式限定名称的,将相应的 Table.schema 类似的模式参数设置为其默认值...Table对象的应用程序造成问题,以及迁移场景,特别是使用 Alembic 迁移检测新外键约束时。...作为最佳实践,请确保数据库的“默认”模式只是一个单一的名称,而不是名称列表;对于属于此“默认”模式且可以 DDL SQL 不带模式限定命名的,将相应的 Table.schema 类似的模式参数设置为它们的默认值

    26410

    Web-第二十四天 Oracle学习【悟空教程】

    它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。...DDL包括许多与人数据库目录获得数据有关的保留字。它也是动作查询的一部分。 DCL(数据库控制语言):它的语句通过GRANT或REVOKE获得许可,确定单个用户用户 组对数据库对象的访问。...FROM 别名,1 别名 {WHERE 限制条件 ORDER BY 排序字段 ASC|DESC...} 范例:查询员工部门 ?...我是1'); end if; end; 范例2:如果从控制台输入1则输出我是1否则输出我不是1 declare mynum number := # begin if mynum = 1...但过程函数都可以通过out指定一个或多个输出参数。我们可以利用out参数,在过程函数实现返回多个值。

    1.8K20

    SQL命令 CREATE PROCEDURE(一)

    过程可以采用以下任何形式: Unqualified不限定的:接受默认模式名。例如,MedianAgeProc()。 Qualified:提供模式名称。...系统范围的初始默认模式名是SQLUser,它对应于类包User。 注意,FOR特征(将在下面描述)覆盖了procname中指定的类。...SQL使用SQL procname生成相应的类。 该名称由与模式名对应的包、点、" proc "指定的过程组成。...列表的每个参数声明由(按顺序)组成: 一个可选关键字,指定参数模式是IN(输入值)、OUT(输出值)还是INOUT(修改值)。如果省略,默认参数模式为IN。 参数名称。参数名称区分大小写。...%Message=%msg SQLCODE%ROWCOUNT的值是执行SQL语句时自动设置的。 %sqlcontext对象每次执行之前都被重置。

    1.4K30
    领券