一、Oracle临时表知识   

在Oracle中,临时表分为SESSION、TRANSACTION两种,SESSION级的临时表数据在整个SESSION都存在,直到结束此次SESSION;而 TRANSACTION级的临时表数据在TRANACTION结束后消失,即COMMIT/ROLLBACK或结束SESSION都会清除 TRANACTION临时表数据。

1) 会话级临时表 示例

1创建

  1. create global temporary table temp_tbl(col_a varchar2(30))
  2. on commit preserve rows
create global temporary table temp_tbl(col_a varchar2(30))
on commit preserve rows

2插入数据

  1. insert into temp_tbl values('test session table')
insert into temp_tbl values('test session table')

3提交

  1. commit;
commit;

4查询

  1. select *from temp_tbl
select *from temp_tbl

可以看到数据'test session table'记录还在。
结束SESSION,重新登录,再查询数据select *from temp_tbl,这时候记录已不存在,因为系统在结束SESSION时自动清除记录 。

2) 事务级临时表 示例

1创建

  1. create global temporary table temp_tbl(col_a varchar2(30))
  2. on commit delete rows
create global temporary table temp_tbl(col_a varchar2(30))
on commit delete rows

2插入数据

  1. insert into temp_tbl values('test transaction table')
insert into temp_tbl values('test transaction table')

3提交

  1. commit ;
commit ;

4查询

  1. select *from temp_tbl
select *from temp_tbl

这时候可以看到刚才插入的记录'test transaction table'已不存在了,因为提交时已经晴空了数据库;同样,如果不提交而直接结束SESSION,重新登录记录也不存在 。

二、在Oracle存储中使用临时表的一个例子

描述:档案册借阅时,需要把册拆分成详细的单据,拆分依据是册表中的BILLCODES(若干个用逗号分割的单据号)字段,临时表用于保存拆分出来的单据信息。拆分结束后直接返回临时表的数据。

  1. create or replace package AMS_PKG as
  2. type REFCURSORTYPE is REF CURSOR;
  3. procedure SPLIT_VOLUMES (P_CORP_NAME IN varchar2,P_YEAR IN varchar2,P_MONTH IN varchar2,P_VOL_TYPE_CODE IN varchar2,P_BILL_NUM IN varchar2,P_VOLUME_NUM IN varchar2,P_AREA_CODES IN varchar2,P_QUERY_SQL out varchar2,P_OUTCURSOR out refCursorType);
  4. end AMS_PKG;
  5. /
  6. CREATE OR REPLACE PACKAGE BODY "AMS_PKG" as
  7. procedure SPLIT_VOLUMES(p_CORP_NAME      IN   varchar2,         --查询条件,公司名称
  8. p_YEAR           IN   varchar2,         --查询条件,会计年度
  9. p_MONTH          IN   varchar2,         --查询条件,期间
  10. p_VOL_TYPE_CODE  IN   varchar2,         --查询条件,凭证类别编码
  11. p_BILL_NUM       IN   varchar2,         --查询条件,信息单号
  12. p_VOLUME_NUM     IN   varchar2,         --查询条件,册号
  13. p_AREA_CODES     IN   varchar2,         --查询条件,所在区域编码(产生册的区域),逗号分割。
  14. --形式如 '12C01','12201','12D01','12E01','12601',存储过程中将使用in的方式进行过滤
  15. p_QUERY_SQL     out   varchar2,         --返回查询字符串
  16. p_OutCursor      out  refCursorType --返回值
  17. ) is
  18. v_sql   varchar2(3000);
  19. v_sql_WHERE   varchar2(3000);
  20. v_temp1   varchar2(300);
  21. v_temp2   varchar2(300);
  22. v_tempBILLCODES varchar2(3000);
  23. V_CNT NUMBER(10,0);
  24. V_VOLUME_ID NUMBER(10,0);
  25. mycur refCursorType;
  26. --CURSOR mycur( v varchar2) is
  27. --               SELECT VOUCHTYPE,BILLCODES FROM PUB_VOLUMES where volumeid=v;
  28. CURSOR mycur_split( val varchar2,splitMark varchar2) is
  29. select * from table(myutil_split(val,splitMark));
  30. begin
  31. v_temp1    :='';
  32. v_temp2    :='';
  33. v_sql_WHERE := '';
  34. v_tempBILLCODES  := '';
  35. V_CNT            := 0;
  36. V_VOLUME_ID            := 0;--册表的系统编号
  37. v_sql := 'SELECT VOLUMEID,VOUCHTYPE,BILLCODES FROM PUB_VOLUMES WHERE 1=1 ';
  38. --dbms_output.put_line('p_BILL_NUM='||p_BILL_NUM);
  39. IF (p_CORP_NAME IS NOT NULL AND LENGTH(p_CORP_NAME) >0) THEN --公司名称
  40. BEGIN
  41. v_sql_WHERE := v_sql_WHERE || ' AND CORPNAME LIKE ''%';
  42. v_sql_WHERE := v_sql_WHERE || p_CORP_NAME;
  43. v_sql_WHERE := v_sql_WHERE || '%''';
  44. --dbms_output.put_line(p_BILL_NUM);
  45. END;
  46. END IF;
  47. IF (p_YEAR IS NOT NULL AND LENGTH(p_YEAR) >0)  THEN --会计年度
  48. BEGIN
  49. v_sql_WHERE := v_sql_WHERE || ' AND YEAR = ''';
  50. v_sql_WHERE := v_sql_WHERE || p_YEAR;
  51. v_sql_WHERE := v_sql_WHERE || '''';
  52. --dbms_output.put_line(p_BILL_NUM);
  53. END;
  54. END IF;
  55. IF (p_MONTH IS NOT NULL AND LENGTH(p_MONTH) >0)  THEN --期间
  56. BEGIN
  57. v_sql_WHERE := v_sql_WHERE || ' AND MONTH = ''';
  58. v_sql_WHERE := v_sql_WHERE || p_MONTH;
  59. v_sql_WHERE := v_sql_WHERE || '''';
  60. --dbms_output.put_line(p_BILL_NUM);
  61. END;
  62. END IF;
  63. IF (p_VOL_TYPE_CODE IS NOT NULL AND LENGTH(p_VOL_TYPE_CODE) >0) THEN --凭证类别编码
  64. BEGIN
  65. v_sql_WHERE := v_sql_WHERE || ' AND VOUCHTYPE = ''';
  66. v_sql_WHERE := v_sql_WHERE || p_VOL_TYPE_CODE;
  67. v_sql_WHERE := v_sql_WHERE || '''';
  68. --dbms_output.put_line(p_BILL_NUM);
  69. END;
  70. END IF;
  71. IF (p_BILL_NUM IS NOT NULL AND LENGTH(p_BILL_NUM) >0) THEN --信息单号
  72. BEGIN
  73. v_sql_WHERE := v_sql_WHERE || ' AND BILLCODES LIKE ''%';
  74. v_sql_WHERE := v_sql_WHERE || p_BILL_NUM;
  75. v_sql_WHERE := v_sql_WHERE || '%''';
  76. --dbms_output.put_line(p_BILL_NUM);
  77. END;
  78. END IF;
  79. IF (p_VOLUME_NUM IS NOT NULL AND LENGTH(p_VOLUME_NUM) >0) THEN --册号
  80. BEGIN
  81. v_sql_WHERE := v_sql_WHERE || ' AND VOLUMENUM = ''';
  82. v_sql_WHERE := v_sql_WHERE || p_VOLUME_NUM;
  83. v_sql_WHERE := v_sql_WHERE || '''';
  84. --dbms_output.put_line(p_BILL_NUM);
  85. END;
  86. END IF;
  87. p_QUERY_SQL := 'SQL4WHERE:    ' || v_sql_WHERE;
  88. --dbms_output.put_line(v_sql || v_sql_WHERE || p_BILL_NUM);
  89. --OPEN mycur(v_WHERE);
  90. OPEN mycur FOR v_sql || v_sql_WHERE;
  91. LOOP--循环册记录
  92. fetch mycur INTO V_VOLUME_ID,v_temp1,v_tempBILLCODES ;
  93. EXIT WHEN mycur%NOTFOUND;
  94. V_CNT := V_CNT + 1 ;
  95. --DBMS_OUTPUT.PUT_LINE( V_CNT || ':BILLCODES = ' || v_tempBILLCODES);
  96. OPEN mycur_split(v_tempBILLCODES,',');
  97. LOOP--循环生成每一个册的单据记录
  98. fetch mycur_split INTO v_temp2 ;
  99. EXIT WHEN mycur_split%NOTFOUND;
  100. --DBMS_OUTPUT.PUT_LINE('              ' || v_temp2);
  101. --DBMS_OUTPUT.PUT_LINE('             p_BILL_NUM= ' || p_BILL_NUM||',v_temp2='||v_temp2);
  102. IF (p_BILL_NUM IS NULL OR p_BILL_NUM = TO_NUMBER(v_temp2)) THEN
  103. v_temp1 := 'INSERT INTO TEMP_VOLUMES_QUERY (SELECT '''|| v_temp2 || ''',A.* FROM PUB_VOLUMES A WHERE volumeid = ' || V_VOLUME_ID || ')';--写入到临时表
  104. --dbms_output.put_line( 'v_temp1=' || v_temp1);
  105. execute immediate v_temp1;
  106. END IF;
  107. END LOOP;
  108. CLOSE mycur_split;
  109. END LOOP;
  110. CLOSE mycur;
  111. --开始输出结果
  112. v_sql := 'SELECT CE.DCODE,CE.VOLUMEID,CE.CORPCODE,CE.CORPNAME,QU.AREANAME,CE.YEAR,CE.MONTH,CE.BILLCODES,CE.VOUCHTYPE,SHI.ROOMNAME,  ';
  113. v_sql := v_sql || 'CE.VOLUMENUM,GUI.CABINETNUM,CE.CABINETLAYER  FROM TEMP_VOLUMES_QUERY CE  ';
  114. v_sql := v_sql || 'LEFT OUTER JOIN PUB_CORPS NAME ON CE.CORPCODE = NAME.CORPCODE  ';--册所属公司(产生单据的公司)
  115. v_sql := v_sql || 'LEFT OUTER JOIN PUB_AREAS QU ON NAME.AREACODE=QU.AREACODE ';--册所属区域(产生单据的公司所在区域)
  116. v_sql := v_sql || 'LEFT OUTER JOIN PUB_CABINETS GUI ON CE.CABINETCODE=GUI.CABINETCODE  ';--册所在档案柜(保存的位置)
  117. v_sql := v_sql || 'LEFT OUTER JOIN PUB_ARCHIVESROOMS SHI ON GUI.ROOMCODE = SHI.ROOMID  ';--册(柜)所在档案室(保存的位置)
  118. v_sql := v_sql || 'WHERE (GUI.ISMAIL = 0 OR GUI.ISSIGN = 1) ';--尚未邮寄的或者已签收的
  119. v_sql := v_sql || 'AND CE.ISBORROW = ''0'' ';--尚未借出去的
  120. IF (p_AREA_CODES IS NOT NULL AND LENGTH(p_AREA_CODES) >0) THEN --如果需要限制册的所属区域
  121. BEGIN
  122. v_sql := v_sql || 'AND QU.AREACODE IN ('|| p_AREA_CODES || ')  ';
  123. END;
  124. END IF;
  125. p_QUERY_SQL := p_QUERY_SQL || '   SQL4RESULT:    ' || v_sql;--返回
  126. OPEN p_OutCursor FOR v_sql;
  127. SELECT COUNT(1) INTO V_CNT FROM TEMP_VOLUMES_QUERY;
  128. dbms_output.put_line(v_sql || ',V_CNT=' || V_CNT);
  129. dbms_output.put_line(V_CNT);
  130. delete from TEMP_VOLUMES_QUERY;
  131. COMMIT;
  132. end SPLIT_VOLUMES;
  133. end;
  134. /
create or replace package AMS_PKG as
type REFCURSORTYPE is REF CURSOR;
procedure SPLIT_VOLUMES (P_CORP_NAME IN varchar2,P_YEAR IN varchar2,P_MONTH IN varchar2,P_VOL_TYPE_CODE IN varchar2,P_BILL_NUM IN varchar2,P_VOLUME_NUM IN varchar2,P_AREA_CODES IN varchar2,P_QUERY_SQL out varchar2,P_OUTCURSOR out refCursorType);
end AMS_PKG;
/
CREATE OR REPLACE PACKAGE BODY "AMS_PKG" as
procedure SPLIT_VOLUMES(p_CORP_NAME IN varchar2, --查询条件,公司名称
p_YEAR IN varchar2, --查询条件,会计年度
p_MONTH IN varchar2, --查询条件,期间
p_VOL_TYPE_CODE IN varchar2, --查询条件,凭证类别编码
p_BILL_NUM IN varchar2, --查询条件,信息单号
p_VOLUME_NUM IN varchar2, --查询条件,册号
p_AREA_CODES IN varchar2, --查询条件,所在区域编码(产生册的区域),逗号分割。
--形式如 '12C01','12201','12D01','12E01','12601',存储过程中将使用in的方式进行过滤
p_QUERY_SQL out varchar2, --返回查询字符串
p_OutCursor out refCursorType --返回值
) is v_sql varchar2(3000);
v_sql_WHERE varchar2(3000);
v_temp1 varchar2(300);
v_temp2 varchar2(300);
v_tempBILLCODES varchar2(3000);
V_CNT NUMBER(10,0);
V_VOLUME_ID NUMBER(10,0);
mycur refCursorType;
--CURSOR mycur( v varchar2) is
-- SELECT VOUCHTYPE,BILLCODES FROM PUB_VOLUMES where volumeid=v;
CURSOR mycur_split( val varchar2,splitMark varchar2) is
select * from table(myutil_split(val,splitMark));
begin
v_temp1 :='';
v_temp2 :='';
v_sql_WHERE := '';
v_tempBILLCODES := '';
V_CNT := 0;
V_VOLUME_ID := 0;--册表的系统编号
v_sql := 'SELECT VOLUMEID,VOUCHTYPE,BILLCODES FROM PUB_VOLUMES WHERE 1=1 ';
--dbms_output.put_line('p_BILL_NUM='||p_BILL_NUM); IF (p_CORP_NAME IS NOT NULL AND LENGTH(p_CORP_NAME) >0) THEN --公司名称
BEGIN
v_sql_WHERE := v_sql_WHERE || ' AND CORPNAME LIKE ''%';
v_sql_WHERE := v_sql_WHERE || p_CORP_NAME;
v_sql_WHERE := v_sql_WHERE || '%''';
--dbms_output.put_line(p_BILL_NUM);
END;
END IF;
IF (p_YEAR IS NOT NULL AND LENGTH(p_YEAR) >0) THEN --会计年度
BEGIN
v_sql_WHERE := v_sql_WHERE || ' AND YEAR = ''';
v_sql_WHERE := v_sql_WHERE || p_YEAR;
v_sql_WHERE := v_sql_WHERE || '''';
--dbms_output.put_line(p_BILL_NUM);
END;
END IF;
IF (p_MONTH IS NOT NULL AND LENGTH(p_MONTH) >0) THEN --期间
BEGIN
v_sql_WHERE := v_sql_WHERE || ' AND MONTH = ''';
v_sql_WHERE := v_sql_WHERE || p_MONTH;
v_sql_WHERE := v_sql_WHERE || '''';
--dbms_output.put_line(p_BILL_NUM);
END;
END IF;
IF (p_VOL_TYPE_CODE IS NOT NULL AND LENGTH(p_VOL_TYPE_CODE) >0) THEN --凭证类别编码
BEGIN
v_sql_WHERE := v_sql_WHERE || ' AND VOUCHTYPE = ''';
v_sql_WHERE := v_sql_WHERE || p_VOL_TYPE_CODE;
v_sql_WHERE := v_sql_WHERE || '''';
--dbms_output.put_line(p_BILL_NUM);
END;
END IF;
IF (p_BILL_NUM IS NOT NULL AND LENGTH(p_BILL_NUM) >0) THEN --信息单号
BEGIN
v_sql_WHERE := v_sql_WHERE || ' AND BILLCODES LIKE ''%';
v_sql_WHERE := v_sql_WHERE || p_BILL_NUM;
v_sql_WHERE := v_sql_WHERE || '%''';
--dbms_output.put_line(p_BILL_NUM);
END;
END IF;
IF (p_VOLUME_NUM IS NOT NULL AND LENGTH(p_VOLUME_NUM) >0) THEN --册号
BEGIN
v_sql_WHERE := v_sql_WHERE || ' AND VOLUMENUM = ''';
v_sql_WHERE := v_sql_WHERE || p_VOLUME_NUM;
v_sql_WHERE := v_sql_WHERE || '''';
--dbms_output.put_line(p_BILL_NUM);
END;
END IF;
p_QUERY_SQL := 'SQL4WHERE: ' || v_sql_WHERE; --dbms_output.put_line(v_sql || v_sql_WHERE || p_BILL_NUM);
--OPEN mycur(v_WHERE);
OPEN mycur FOR v_sql || v_sql_WHERE; LOOP--循环册记录
fetch mycur INTO V_VOLUME_ID,v_temp1,v_tempBILLCODES ;
EXIT WHEN mycur%NOTFOUND;
V_CNT := V_CNT + 1 ;
--DBMS_OUTPUT.PUT_LINE( V_CNT || ':BILLCODES = ' || v_tempBILLCODES);
OPEN mycur_split(v_tempBILLCODES,',');
LOOP--循环生成每一个册的单据记录
fetch mycur_split INTO v_temp2 ;
EXIT WHEN mycur_split%NOTFOUND;
--DBMS_OUTPUT.PUT_LINE(' ' || v_temp2);
--DBMS_OUTPUT.PUT_LINE(' p_BILL_NUM= ' || p_BILL_NUM||',v_temp2='||v_temp2);
IF (p_BILL_NUM IS NULL OR p_BILL_NUM = TO_NUMBER(v_temp2)) THEN
v_temp1 := 'INSERT INTO TEMP_VOLUMES_QUERY (SELECT '''|| v_temp2 || ''',A.* FROM PUB_VOLUMES A WHERE volumeid = ' || V_VOLUME_ID || ')';--写入到临时表
--dbms_output.put_line( 'v_temp1=' || v_temp1);
execute immediate v_temp1;
END IF;
END LOOP;
CLOSE mycur_split; END LOOP; CLOSE mycur; --开始输出结果
v_sql := 'SELECT CE.DCODE,CE.VOLUMEID,CE.CORPCODE,CE.CORPNAME,QU.AREANAME,CE.YEAR,CE.MONTH,CE.BILLCODES,CE.VOUCHTYPE,SHI.ROOMNAME, ';
v_sql := v_sql || 'CE.VOLUMENUM,GUI.CABINETNUM,CE.CABINETLAYER FROM TEMP_VOLUMES_QUERY CE ';
v_sql := v_sql || 'LEFT OUTER JOIN PUB_CORPS NAME ON CE.CORPCODE = NAME.CORPCODE ';--册所属公司(产生单据的公司)
v_sql := v_sql || 'LEFT OUTER JOIN PUB_AREAS QU ON NAME.AREACODE=QU.AREACODE ';--册所属区域(产生单据的公司所在区域)
v_sql := v_sql || 'LEFT OUTER JOIN PUB_CABINETS GUI ON CE.CABINETCODE=GUI.CABINETCODE ';--册所在档案柜(保存的位置)
v_sql := v_sql || 'LEFT OUTER JOIN PUB_ARCHIVESROOMS SHI ON GUI.ROOMCODE = SHI.ROOMID ';--册(柜)所在档案室(保存的位置)
v_sql := v_sql || 'WHERE (GUI.ISMAIL = 0 OR GUI.ISSIGN = 1) ';--尚未邮寄的或者已签收的
v_sql := v_sql || 'AND CE.ISBORROW = ''0'' ';--尚未借出去的
IF (p_AREA_CODES IS NOT NULL AND LENGTH(p_AREA_CODES) >0) THEN --如果需要限制册的所属区域
BEGIN
v_sql := v_sql || 'AND QU.AREACODE IN ('|| p_AREA_CODES || ') ';
END;
END IF; p_QUERY_SQL := p_QUERY_SQL || ' SQL4RESULT: ' || v_sql;--返回 OPEN p_OutCursor FOR v_sql;
SELECT COUNT(1) INTO V_CNT FROM TEMP_VOLUMES_QUERY;
dbms_output.put_line(v_sql || ',V_CNT=' || V_CNT);
dbms_output.put_line(V_CNT);
delete from TEMP_VOLUMES_QUERY;
COMMIT; end SPLIT_VOLUMES; end;
/

 

三、结论
1、ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
2、ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
3、临时表(无论会话级还是事务级)中的数据都是会话隔离的,不同session之间不会共享数据。

4、在存储中使用事务级临时表时,注意commit前删除掉本事务的数据,否则可能会出现数据不断增加的情况(原因尚未搞明白)。

5、 两种临时表的语法:
    create global temporary table 临时表名 on commit preserve|delete rows;

用preserve时就是SESSION级的临时表,

用delete就是TRANSACTION级的临时表。

6、特性和性能(与普通表和视图的比较)
临时表只在当前连接内有效;
临时表不建立索引,所以如果数据量比较大或进行多次查询时,不推荐使用;
数据处理比较复杂的时候时表快,反之视图快点;
在仅仅查询数据的时候建议用游标: open cursor for 'sql clause'

Oracle存储过程中使用临时表的更多相关文章

  1. 在ORACLE存储过程中创建临时表

    在ORACLE存储过程中创建临时表 存储过程里不能直接使用DDL语句,所以只能使用动态SQL语句来执行 --ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截 ...

  2. Oracle 存储过程中的临时表数据自动清空

    问题叙述: 用 EXECUTE IMMEDIATE 动态往临时表插入数据,跟踪发现插入临时表后数据会立马清空,按理说等存储过程执行完才会清空临时表才对,现在是执行插入语句后下一步验证就发现临时表就没有 ...

  3. Oracle存储过程中异常Exception的捕捉和处理

    Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Var ...

  4. sqlserver 存储过程中使用临时表到底会不会导致重编译

    曾经在网络上看到过一种说法,SqlServer的存储过程中使用临时表,会导致重编译,以至于执行计划无法重用, 运行时候会导致重编译的这么一个说法,自己私底下去做测试的时候,根据profile的跟踪结果 ...

  5. Oracle存储过程中异步调用的实际操作步骤

    本文标签:Oracle存储过程 我们都知道在Oracle数据库的实际应用的过程中,我们经常把相关的业务处理逻辑,放在Oracle存储过程中,客户端以通过ADO来进行相关的调用  .而有些相关的业务逻辑 ...

  6. ORACLE存储过程中%TYPE和%ROWTYPE的区别

    ORACLE存储过程中%TYPE和%ROWTYPE的区别 在存储过程中%TYPE和%ROWTYPE常用来在PL/SQL中定义变量 因为 t_emp emp%rowtype ;这个语句的意思是 定义一个 ...

  7. Oracle存储过程中跳出循环的写法

    注:本文来源于: <  Oracle存储过程中跳出循环的写法   > Oracle存储过程中跳出循环的写法 记录exit和return的用法 1:exit用来跳出循环 loop IF V_ ...

  8. java 实现往oracle存储过程中传递array数组类型的参数

    注:本文来源于 <  java 实现往oracle存储过程中传递array数组类型的参数  >最近项目中遇到通过往存储过程传递数组参数的问题, 浪费了N多个小时,终于有点头绪. 具体的代码 ...

  9. Sybase:存储过程中采用临时表存储统计数据

    Sybase:存储过程中采用临时表存储统计数据 作用 很有效的提升统计查询速度,对于数据量亿级.千万级多表之间关联查询,非常有效: 使用 --无需定义临时表,直接使用 --自动释放临时表 select ...

随机推荐

  1. 使用Redis-Dump 导出、导入redis数据

    一.安装ruby https://www.cnblogs.com/EikiXu/p/9406707.html 二.安装redis-dump工具 yum install ruby rubygems ru ...

  2. 第2课 类型推导(2)_decltype关键字

    1. decltype关键字 (1)auto所修饰的变量必须被初始化,编译器才能通过初始化来确定auto所代表的类型,即必须先定义变量. (2)decltype可以在编译期推导出一个变量或表达式的结果 ...

  3. KVM CPU线程等学习记录

    绝大多数操作系统调度单位是线程.线程是调度和分配的基本单位,进程是资源拥有的基本单位.linux下fork的叫进程pthread叫线程创建进程比线程性能要差好多5-100倍,因进程不同而异.进程之间共 ...

  4. solr学习之域的管理与中文分析器配置

    该文使用  Centos6.5 64 位    solr4.10.3   IK-Analyzer中文分析器 一.solr域 在solr中域的概念与lucene中域的概念相同,数据库的一条记录或者一个文 ...

  5. pycharm中导入requests,xmlx等模块的方法。

    现在pycharm的功能越来越强大,我们需要什么直接就可以导入: 下面正式开始介绍: 第一步: 先选择左边的:project interpreter   ----->再点击后面的绿色的加号. 那 ...

  6. day1作业(格式化输出)

    练习:用户输入姓名.年龄.工作.爱好 ,然后打印成以下格式------------ info of Egon -----------Name  : EgonAge   : 22Sex   : male ...

  7. 零基础学习python_模块(50-52课)

    今天学了下模块,那什么是模块呢?其实我们写的以py结尾的一个文件就是一个模块,模块也就是程序 还记得我们之前学过容器.函数.类吧 容器    ->    数据的封装 函数    ->   ...

  8. 系列:这一件月薪30K+的事,我们一起来撮合一下 3

    作者:接地气的陈老师 ----------------------------------------------------------------------------------------- ...

  9. 21纯 CSS 创作文本滑动特效的 UI 界面

    原文地址:https://segmentfault.com/a/1190000014842868 简化版地址:https://scrimba.com/c/cgaZLh6 感想:笨蛋,想不出自己的东西. ...

  10. python中strip、startswith、endswith

    strip(rm)用来删除元素内的空白符: rm对应要删除空白符的元素,当rm为空(strip())时删除所有元素的空白符 startswith.endswith用来查找开头或结尾条件的元素 例子: ...