sql - 不使用 COUNT 操作 ORACLE 打印表中行数的简单过程
问题描述
谁能帮我创建一个简单的程序来打印表中的行数而不使用 ORACLE 中的 COUNT 操作?
解决方案
LOOP
考虑到不允许聚合函数,您必须在过程中寻找..
假设我有一个account
包含 3 条记录的表。
SQL> SELECT * FROM ACCOUNT; ACC_NR SUM_ CUST_ID ---------- ---------- ---------- 500 3400 100 600 5000 101 700 5070 102 SQL>
现在,创建过程:
SQL> CREATE OR REPLACE PROCEDURE COUNT_ACCOUNT ( 2 P_OUT_COUNT OUT NUMBER 3 ) AS 4 BEGIN 5 P_OUT_COUNT := 0; 6 FOR I IN ( 7 SELECT 8 1 AS RW 9 FROM 10 ACCOUNT 11 ) LOOP 12 P_OUT_COUNT := P_OUT_COUNT + 1; 13 END LOOP; 14 END COUNT_ACCOUNT; 15 / Procedure created. SQL>
执行该过程以查看输出:
SQL> SET SERVEROUT ON SQL> SQL> DECLARE 2 CNT NUMBER := 0; 3 BEGIN 4 COUNT_ACCOUNT(CNT); 5 DBMS_OUTPUT.PUT_LINE('NUMBER OF RECORDS IN ACCOUNT TABLE: ' || CNT); 6 END; 7 / NUMBER OF RECORDS IN ACCOUNT TABLE: 3 PL/SQL procedure successfully completed. SQL>
干杯!!
推荐阅读
- html - 导航菜单将一项向右对齐
- google-bigquery - bigquery:`string_value` 与 `string` 之间有什么区别
- git - “git clone”在.git/config 上抛出“文件已存在”错误?
- sqlite - sqlite在午夜时间的两次问题之间查找时间
- excel - 使用 VBA 将值复制到 Excel 表中而无需额外的行
- azure - AspNetCore AppSettings Azure DevOps
- terraform - Terraform 资源 aws_elastic_beanstalk_environment 和敏感数据
- iptables - strongswan ipsec 无法 ping 子网
- python - 视图 profile.views.ProfileDetailComment 没有返回 HttpResponse 对象。它返回 None 而不是
- elasticsearch - Elasticsearch 6.7 _reindex 操作不一致地报告映射器错误