求纯正的Linux系统ISO下载
求纯正的Linux系统ISO下载,要求可以下载的(资源要稳定) 我要的是原版的,不要带有图形菜单或者什么汉化版之类的 一定要100%纯Linux
更新时间:2023-11-25 11:11
最满意答案
行列转换会有区别吗? 11g应该没有针对行列转换进行过升级吧。 ----------------------------------------------------- oracle中将多行合并为一行多列,或者一列的范例 ---------------------------------------------------- 在之前的开发过程中多次碰到需要将多个行数据转换为一个列数据的情况,比如针对下面的表party_info(subcompany_id,branch_id,customer_id,region_id)。如果我们希望查询得到如下结果(分公司,经营部,区域,区域中的客户列表),在10g中这种需求可以使用wmsys.wm_conact函数实现。但在9i之前的版本,这个操作实现起来就相对困难。 create table t_connect as select lpad(mod(rownum,30),10,'*') fgs_name,lpad(mod(rownum,200),10,'*') branch_name, lpad(mod(rownum,1000),10,'*') region_name, lpad(rownum,10,'*') party_name from dual connect by rownum < 10000; 概况来说,可以有两种可行的实现方式。 1,方式1,针对具体查询建立function create or replace function f_connect(a_region_name varchar2) return varchar2 as v_string string(32000); begin for rec in (select party_name from t_connect where region_name = a_region_name) loop v_string := v_string ||','||rec.party_name; end loop; v_string := substr(v_string,2); --end loop; return v_string; end ; 如上函数将根据传入的区域名称,返回该区域下的所有客户拼凑成的字符串。 select fgs_name,branch_name,region_name,f_connect(region_name) customer_list from t_connect; 执行计划 ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 TABLE ACCESS (FULL) OF 'T_CONNECT' 统计信息 ---------------------------------------------------------- 109982 recursive calls 0 db block gets 819958 consistent gets 0 physical reads 0 redo size 1494911 bytes sent via SQL*Net to client 7690 bytes received via SQL*Net from client 668 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 9999 rows processed 2,方式2,使用sys_connect_by_path函数实现 select fgs_name,branch_name,region_name,max(substr(sys_connect_by_path(party_name,','),2 )) customer_list from ( select fgs_name,branch_name,region_name,party_name,row_number() over(partition by region_name order by party_name) r1 from t_connect ) t start with r1 =1 connect by r1 = prior r1 +1 and region_name= prior region_name group by fgs_name,branch_name,region_name; 执行计划 ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 SORT (GROUP BY) 2 1 CONNECT BY (WITHOUT FILTERING) 3 2 COUNT 4 3 VIEW 5 4 WINDOW (SORT) 6 5 TABLE ACCESS (FULL) OF 'T_CONNECT' 统计信息 ---------------------------------------------------------- 0 recursive calls 3 db block gets 72 consistent gets 148 physical reads 0 redo size 368295 bytes sent via SQL*Net to client 2553 bytes received via SQL*Net from client 201 SQL*Net roundtrips to/from client 2 sorts (memory) 1 sorts (disk) 3000 rows processed。 我们看到,在没有任何索引的情况下,使用传统函数需要的逻辑读次数接近82万,而使用sys_connect_by_path函数时只需要200多个。 下面,我们尝试在region_name上建立索引查看两者效率的差别。 select fgs_name,branch_name,region_name,f_connect(region_name) customer_list from t_connect; 执行计划 ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 TABLE ACCESS (FULL) OF 'T_CONNECT' 统计信息 ---------------------------------------------------------- 109981 recursive calls 0 db block gets 220689 consistent gets 27 physical reads 0 redo size 1494911 bytes sent via SQL*Net to client 7690 bytes received via SQL*Net from client 668 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 9999 rows processed ************************************************************* oracle中将一行转换为多行的范例 ************************************************************* Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。 网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数与聚合函数联合实现功能,这里就不再重复。 日前本人在一个偶然的应用中用到了一个需要将列数据转换为行数据的问题。搜索了很久没有发现很合适的方法。网络一般推荐使用union all实现。这样的一个重要问题在于会造成对数据表的重复访问,性能是个重要问题。 基于此,作者设想了另外一种实现可能性。实践证明,这种方法有效提供了查询性能。 create table f_distribution( f1 varchar2(200), qty1 int, qty2 int, qty3 int ); insert into f_distribution(f1,qty1,qty2,qty3) values('zhanglei',1,2,3); insert into f_distribution(f1,qty1,qty2,qty3) values('lixian',1,2,3); insert into f_distribution(f1,qty1,qty2,qty3) values('zhoubin',1,2,3); insert into f_distribution(f1,qty1,qty2,qty3) values('zhengtong',1,2,3); select * from f_distribution select a.f1,b.fid, decode(b.fid,'数据1',a.qty1, '数据2',a.qty2, '数据3',a.qty3 ) from f_distribution a, ( select '数据1' fid from dual union all select '数据2' fid from dual union all select '数据3' fid from dual ) b
其他回答
题目好大,一言概之: oracle可以实现向下兼容,你所提到的几个版本,在这点上还是做的不错的,高版本的函数更多,应用和编码方式几乎没有区别。
相关问答
更多-
oracle 11G实例表的问题,懂的进来看看[2023-08-03]
11g里貌似没有这张表了。我以前用9I 有用过一段时间的11G 但又换回了9I 现在11G用的人不很多 -
oracle 行变列 9i 与11g的区别[2021-12-16]
行列转换会有区别吗? 11g应该没有针对行列转换进行过升级吧。 ----------------------------------------------------- oracle中将多行合并为一行多列,或者一列的范例 ---------------------------------------------------- 在之前的开发过程中多次碰到需要将多个行数据转换为一个列数据的情况,比如针对下面的表party_info(subcompany_id,branch_id,customer_id,reg ... -
您是否已经尝试过Oracle SQL Developer中的 “工具” - >“数据库差异”? Did you already try "Tools"->"Database Diff" from Oracle SQL Developer ?
-
恐怕你必须编写你自己的isnumber函数,然后使用它,在这个线程中找到的东西(未经测试)应该可以工作。 DECLARE FUNCTION isNumber(p_text IN VARCHAR2) RETURN NUMBER IS v_dummy NUMBER; not_number EXCEPTION; PRAGMA EXCEPTION_INIT(-, not_number); BEGIN v_dummy := TO_NUMBER(p_text); RETURN 1; ...
-
您应该定义列的类型。 喜欢这个: alter table QAS_ASSIGNED_STATE add cuid number NULL; 然后添加约束: ALTER TABLE QAS_ASSIGNED_STATE ADD CONSTRAINT constraint_cuid UNIQUE (cuid ); You should define column's type. Like this: alter table QAS_ASSIGNED_STATE add ...
-
解决方案是修复生成空白区域的代码问题解决了以下代码 var := XMLType('
'); 改写如下: var := XMLType(' '); Solution was to fix the code that generated white space Issue is resolved once the below code var := XMLTy ... -
您可以为此目的使用序列: create sequence s; 检索id select s.nextval from dual; 或检索一系列ID: select s.nextval from dual connect by level <= 10; you can use sequences for this purpose: create sequence s; to retrieve a id select s.nextval from dual; or to retrieve a rang ...
-
Oracle 11G和Toad(Oracle 11G and Toad)[2023-10-11]
我使用Oracle SQL Developer: http : //www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index-098778.html 有Win-32,Win-64,Linux和Mac OS X版本。 I use Oracle SQL Developer: http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/in ... -
模块oracle是npm中最新且功能最丰富的Oracle驱动程序。 它也支持11g版本。 Module oracle is the most updated and feature rich Oracle driver in npm. It supports 11g version as well.
-
您可以通过序列实现此目的。 CREATE SEQUENCE seq_user; 以上将自动递增1,并从1开始。 要使用此序列插入值,您可以执行以下操作(例如): INSERT INTO table_name (user_id) VALUES (seq_user.NEXTVAL); 要自动执行此过程,您可以在表的触发器中引用序列,该值会自动在插入上添加此值: CREATE OR REPLACE TRIGGER user_trg BEFORE INSERT ON table_name FOR EACH RO ...