这其实是一种数型结构,有一个根目录其下是目录中的文件和目录
每一条记录是一个文件或一个目录
create table tree(
treeid number(10), --- 主关键字,唯一标
father number(10), --- 指向上一级目录,如为最上层则为空
filename varchar2(100), --- 文件名
type number(1) --- 是目录还是文件
)
每一条记录是一个文件或一个目录
create table tree(
treeid number(10), --- 主关键字,唯一标
father number(10), --- 指向上一级目录,如为最上层则为空
filename varchar2(100), --- 文件名
type number(1) --- 是目录还是文件
)
解决方案 »
- 向大家请教一个问题,有些难
- 存储过程的优化问题
- 如何通过税后实得工资,倒推出应发工资,即扣税运算的反运算?
- 简单的查询 求助
- sqlserver 游标一次最大返回的结果集记录数是多少??
- 如何在IIS服务器里面打开带有SQL数据库的ASP程序
- 把表table1中的name列的值插入到表table2中的title列?怎么写sql语句?sqlserver~~
- SUN 在他们写的 财务软件中使用了一种奇怪的数据库加密方法[20不够再加]
- 能否通过角本实现两台sql server服务器的数据复制?
- SQL2016安装失败
- 关于Access和odbc连接的问题,急问!(分数可以加的)
- 如何建立一个新的实例
给你一个伪算法用oracle写的遍历以APNode为根节点的树(由于时间关系没测试)type number(1) --- 是目录还是文件 0 目录,1 节点create or replace procedure trveTree(APNode in number) is
tmpTreeid number(10);
tmpFather number(10);
tmpFilename varchar2(100);
tmpType number(1);
v_ID number(10);
v_sql varchar2(200);
type c_1 is ref cursor;
v_in c_1;
begin
select treeid,father,filename,type into tmpTreeid,tmpFather,tmpFilename,tmpType from tree where treeid:=APNode;
if tmpType=0 then
v_sql:=' select treeid from tree where treeid='||treeid;
OPEN v_in FOR v_sql;
LOOP
fetch v_in into v_ID;
EXIT WHEN v_in%NOTFOUND;
call trveTree(v_ID);
END LOOP ;
CLOSE v_in;
end if;
end;
例如:
AA
AA00
AA0000
AA01
这样就不用递归了,速度也快