Oracle 问题笔记

阅读: 评论:0

Oracle 问题笔记

Oracle 问题笔记

Oracle 问题笔记(持续更新…)

※※※※※※※※※※※※※※DBの列名を検索※※※※※※※※※※※※※※
select * from user_col_comments where comments like '%%'
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
C:UsersAdministrator>sqlplus user/password&#xxx/service
SQL*Plus: Release 11.1.0.6.0 - Production on 月 11月 27 14:22:44 2023Copyright (c) 1982, 2007, Oracle.  All rights reserved.Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
に接続されました。
SQL> show parameter PGA;NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
pga_aggregate_limit                  big integer
5850M
pga_aggregate_target                 big integer
1604M
SQL> alter system set pga_aggregate_target= 2604M;システムが変更されました。SQL> show parameter PGA;NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
pga_aggregate_limit                  big integer
5850M
pga_aggregate_target                 big integer
2604MSQL> alter system set pga_aggregate_target= 3604M;システムが変更されました。

2.PSQL insert后立刻查询插入数据数量

 N_OUTPUT2_CNT:=N_OUTPUT2_CNT + SQL%ROWCOUNT;

3.金額項目1桁間隔編集について(plsql)

例:123456→1 2 3 4 5 6
-----------------------------------------------
declare iNUM NVARCHAR2(10):='123456';nLEN NUMBER;o_RESULT NVARCHAR2(100);c_SUPESU CONSTANT NVARCHAR2(1) := ' ';
begin
--初期化o_RESULT := NULL;
--編集開始nLEN := LENGTH(TRIM(iNUM));FOR iDX IN 1 .. nLEN LOOPo_RESULT :=  o_RESULT || c_SUPESU || SUBSTR(iNUM,iDX,1);END LOOP;
--20桁にするよう
o_RESULT := LPAD(o_RESULT, '20', c_SUPESU);
end;

结果:

5.SQLMerge Into

MERGE INTO merge_target target
USING (SELECT B.name, B.age, B.target_id from merge_source B) source
ON (target.id = source.target_id)
--有重复数据的时候:更新
WHEN MATCHED THENUPDATESET       target.name = source.name,target.age    = source.age
--没有重复数据的时候:追加
WHEN NOT MATCHED THEN INSERT (target.name, target.age) VALUES (source.name, source.age);declare -- Local variables herei integer;
begin-- Test statements hereEXECUTE IMMEDIATE 'TRUNCATE TABLE KMT_DBM_SEIGOSEI_JA_NEW';
end;

6.DBMS_SQL

DECLAREv_cursor NUMBER;v_stat NUMBER;v_row NUMBER;v_id NUMBER;v_no VARCHAR(100);v_date DATE;v_sql VARCHAR(200);s_id NUMBER;s_date DATE;
BEGINs_id := 3000;s_date := SYSDATE;v_sql := 'SELECT id,qan_no,sample_date FROM "tblno" WHERE id > :sid and sample_date < :sdate';v_cursor := dbms_sql.open_cursor; --打开游标;dbms_sql.parse(v_cursor, v_sql, dbms_sql.native); --解析动态SQL语句;dbms_sql.bind_variable(v_cursor, ':sid', s_id); --绑定输入参数;dbms_sql.bind_variable(v_cursor, ':sdate', s_date);dbms_sql.define_column(v_cursor, 1, v_id); --定义列dbms_sql.define_column(v_cursor, 2, v_no, 100);dbms_sql.define_column(v_cursor, 3, v_date);v_stat := ute(v_cursor); --执行动态SQL语句。LOOPEXIT WHEN dbms_sql.fetch_rows(v_cursor) <=0; --fetch_rows在结果集中移动游标,如果未抵达末尾,返回1。        lumn_value(v_cursor, 1, v_id);          --将当前行的查询结果写入上面定义的列中。lumn_value(v_cursor, 2, v_no);lumn_value(v_cursor, 3, v_date);dbms_output.put_line(v_id || ';' || v_no || ';' || v_date);--WK表INSERTnNo := nNo + 1;rWK_table.No := nNo;rWK_table.No := v_id;rWK_table.No := v_no;rWK_table.No := v_date;insert insert into rWK_table values rWK_table;END LOOP;dbms_sql.close_cursor(v_cursor); --关闭游标。
END;

本文发布于:2024-02-02 03:56:18,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170681767041199.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:笔记   Oracle
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23