找到 34423 篇文章 关于编程

如何确定Oracle中剩余的SQL工作量?

Kiran P
更新于 2020年12月5日 06:22:48

942 次查看

问题:你想知道一个长时间运行的SQL还需要多长时间才能完成。解决方案:我们可以使用“V$SESSION_LONGOPS”视图来了解查询剩余的大致执行时间。“V$SESSION_LONGOPS”视图显示运行时间超过六秒的各种数据库操作的状态。请注意,此视图仅为您提供SQL完成时间的粗略估计。示例:select a.username , a.opname , b.sql_text , to_char(a.start_time, 'DD-MON-YY HH24:MI') start_time , a.elapsed_seconds how_long , a.time_remaining secs_left , a.sofar , a.totalwork , round(a.sofar/a.totalwork*100, 2) percent from v$session_longops a ,v$sql ... 阅读更多

如何在Oracle中监控实时SQL执行统计信息?

Kiran P
更新于 2020年12月5日 06:22:04

3K+ 次查看

问题:你想在Oracle中监控当前正在执行的SQL统计信息。解决方案:如果你的数据库是Oracle Database 11g,你可以使用以下查询从“V$SQL_MONITOR”中选择来监控SQL查询的近实时资源消耗。“V$SQL_MONITOR”中的统计信息每秒更新一次。这有助于我们查看资源消耗的更新情况。默认情况下,当SQL语句并行运行或消耗超过5秒的CPU或I/O时间时,会收集这些统计信息。“V$SQL_MONITOR”视图包含“V$SQL”、“V$SQLAREA”和“V$SQLSTATS”视图中包含的统计信息子集。“V$SQL_MONITOR”视图显示实时统计信息... 阅读更多

如何在Oracle中限制每个会话的数据库资源?

Kiran P
更新于 2020年12月5日 06:21:10

2K+ 次查看

问题:你想限制用户在数据库中可以消耗的资源量。解决方案:要限制资源,我们可以按照以下步骤操作。我们可以使用以下SQL语句查看数据库中RESOURCE_LIMIT的当前设置。select name, value from v$parameter where name='resource_limit';创建一个配置文件来限制资源并将其分配给用户。但这不会限制CPU利用率。示例:CREATE PROFILE test_profile LIMIT SESSIONS_PER_USER 2 CPU_PER_SESSION UNLIMITED CPU_PER_CALL 300000 CONNECT_TIME ... 阅读更多

如何在Oracle中使用主键约束和外键约束来强制执行数据库完整性?

Kiran P
更新于 2020年12月5日 06:20:06

458 次查看

问题:你想在Oracle中使用主键约束和外键约束来强制执行数据库完整性。解决方案:对定义了完整性的表执行的任何DML语句(INSERT、UPDATE或DELETE)都有助于确保表中的行保持其完整性。让我们来看一些显示主键约束强制执行的示例。customers表的主键是customer_id列,这意味着存储在customer_id列中的每个值都必须唯一。如果你尝试插入具有主键重复值的行,数据库将返回错误ORA-00001,如下所示... 阅读更多

如何在Oracle中临时存储数据以供以后使用?

Kiran P
更新于 2020年12月5日 06:18:15

2K+ 次查看

问题:你想临时存储SQL的结果。解决方案:我们可以使用CREATE GLOBAL TEMPORARY TABLE语句创建一个临时存储会话数据的表。此外,你可以指定是否保留会话的临时表数据或直到事务提交。我们可以进一步使用ON COMMIT PRESERVE ROWS子句指定在用户会话结束时删除数据。示例:CREATE GLOBAL TEMPORARY TABLE tmp_players ON COMMIT PRESERVE ROWS AS SELECT * FROM players WHERE coach_id IS NOT NULL;全局临时表存储仅在用户会话期间存在的会话专用数据... 阅读更多

如何在Oracle中执行不区分大小写的搜索?

Kiran P
更新于 2020年12月5日 06:17:10

4K+ 次查看

问题:你想在Oracle中执行不区分大小写的搜索。解决方案:处理大小写问题的一种方法是使用内置的UPPER和LOWER函数。这些函数允许你对单个操作的字符串强制执行大小写转换。示例:DECLARE full_name1 VARCHAR2(30) := 'roger federer'; full_name2 VARCHAR2(30) := 'ROGER FEDERER'; BEGIN IF LOWER(full_name1) = LOWER(full_name2) THEN DBMS_OUTPUT.PUT_LINE( full_name1 || ' and ' || full_name2 || ' are the same.'); END IF; END;在上面的示例中,full_name1和full_name2首先转换为小写,然后相互比较,从而得到输出roger federer... 阅读更多

如何在Oracle中使用WITH子句定义函数?

Kiran P
更新于 2020年12月5日 06:16:11

5K+ 次查看

问题:你想在Oracle中使用WITH子句定义函数。解决方案:从Oracle Database 12.1开始,你可以在SELECT语句出现的同一SQL语句中定义函数和过程。这允许在PL/SQL和SQL引擎之间进行上下文切换,通过允许两个步骤都在SQL引擎中发生,从而提高性能。函数或过程需要使用WITH子句定义。记住,在以前版本的Oracle平台中,只有子查询可以在WITH子句中定义。示例:WITH FUNCTION func_amount(p_emailid IN VARCHAR2) RETURN NUMBER IS l_amt ... 阅读更多

如何在PL/SQL中捕获Oracle错误?

Kiran P
更新于 2020年12月5日 06:12:50

3K+ 次查看

问题:你想在PL/SQL中捕获Oracle错误。解决方案:所有Oracle错误都可以借助OTHERS异常处理程序来捕获。让我们来看一个例子。我们将使用students表来演示用法。让我们首先看一下表结构。示例:DESC students;输出Name Null Type ------------- -------- ------------ STUDENT_ID NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(40) PHONE_NUMBER VARCHAR2(20) JOIN_DATE ... 阅读更多

如何在Oracle中生成JSON数据并执行模式验证?

Kiran P
更新于 2020年12月5日 06:10:58

883 次查看

问题:你想在Oracle中生成JSON数据并执行模式验证。解决方案:可以使用JSON_OBJECT、JSON_ARRAYAGG、JSON_QUERY等函数使用多个列和表生成复杂的json数据。JSON_OBJECT:- 这是一个SQL/JSON函数。JSON_OBJECT将其输入作为一对或多对属性键值对。它返回一个JSON对象,该对象为每一对键值对包含一个对象成员。JSON_ARRAYAGG:- SQL/JSON函数JSON_ARRAYAGG是一个聚合函数。它将其输入作为SQL表达式的列,将每个表达式转换为JSON值,并返回包含这些JSON值的单个JSON数组。JSON_QUERY:- JSON_QUERY查找一个或多个... 阅读更多

如何在Oracle中使用DATETIME函数?

Kiran P
更新于 2020年12月5日 06:08:36

441 次查看

问题:您想使用日期时间函数来提取或处理日期时间。解决方案ADD_MONTHS()ADD_MONTHS(x, y) 返回将 y 个月添加到 x 的结果。如果 y 为负数,则从 x 中减去 y 个月示例-- 添加 12 个月 SELECT ADD_MONTHS('01-JAN-2020', 12) FROM dual;输出-- 01/JAN/21示例-- 减去 12 个月 SELECT ADD_MONTHS('01-JAN-2020', -12) FROM dual;输出-- 01/JAN/21我们可以向 ADD_MONTHS() 函数提供时间和日期。示例SELECT ADD_MONTHS(TO_DATE('01-JAN-2020 01:01:01', 'DD-MON-YYYY HH24:MI:SS'), 2) FROM dual;输出-- 01/MAR/20LAST_DAY()LAST_DAY(x) 返回 x 的月份部分的最后一天的日期。示例SELECT LAST_DAY('01-JAN-2020') FROM dual;输出-- 31/JAN/20MONTHS_BETWEEN()MONTHS_BETWEEN(x, y) 返回 x 和 y 之间的月份数。如果 x 出现在 y 之前 ... 阅读更多

广告
© . All rights reserved.