首页 \ 问答 \ 求纯正的Linux系统ISO下载

求纯正的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可以实现向下兼容,你所提到的几个版本,在这点上还是做的不错的,高版本的函数更多,应用和编码方式几乎没有区别。

相关问答

更多

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)