iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >[20210831]bbed读取数据块6.txt
  • 172
分享到

[20210831]bbed读取数据块6.txt

[20210831]bbed读取数据块6.txt 2019-11-20 07:11:19 172人浏览 绘本
摘要

[20210831]bbed读取数据块6.txt--//前一段时间使用自己写的脚本读取数据块,遇到1个小问题,就是字段串超长就仅仅显示1段。--//实际上bbed最大显示宽度是300,我测试最大显示275个字符.1.问题提出:BBED>

[20210831]bbed读取数据块6.txt

[20210831]bbed读取数据块6.txt

--//前一段时间使用自己写的脚本读取数据块,遇到1个小问题,就是字段串超长就仅仅显示1段。
--//实际上bbed最大显示宽度是300,我测试最大显示275个字符.

1.问题提出:
BBED> set width 300
        WIDTH           300

BBED> set width 301
BBED-00208: out of range WIDTH (301)

$ . fff.sh 1 521 523 59 rnnc | grep -ni undo
8:15 |15|CREATE TABLE UNDO$("US#" NUMBER NOT NULL,"NAME" VARCHAR2(30) NOT NULL,"USER#" NUMBER NOT NULL,"FILE#" NUMBER NOT NULL,"BLOCK#" NUMBER NOT NULL,"SCNBAS" NUMBER,"SCNWRP" NUMBER,"XACTSQN" NUMBER,"UNDOSQN" NUMBER,"INST#" NUMBER,"STATUS$" NUMBER NOT NULL,"TS#" NUMBER,"UGRP#" NUMB
9:34 |34|CREATE UNIQUE INDEX I_UNDO1 ON UNDO$(US#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (  INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 34 EXTENTS (FILE 1 BLOCK 320))
10:35 |35|CREATE INDEX I_UNDO2 ON UNDO$(NAME) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (  INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 35 EXTENTS (FILE 1 BLOCK 328))
32:16 |16|CREATE TABLE TS$("TS#" NUMBER NOT NULL,"NAME" VARCHAR2(30) NOT NULL,"OWNER#" NUMBER NOT NULL,"ONLINE$" NUMBER NOT NULL,"CONTENTS$" NUMBER NOT NULL,"UNDOFILE#" NUMBER,"UNDOBLOCK#" NUMBER,"BLOCKSIZE" NUMBER NOT NULL,"INC#" NUMBER NOT NULL,"SCNWRP" NUMBER,"SCNBAS" NUMBER,"DFLMI
--//太长看不出完整语句.不过从前面的行号可以推断在dba=1,521块的行7。"

BBED> x /rnnc dba 1,521 *kdbr[7]
rowdata[4739]                               @6029
-------------
flag@6029: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@6030: 0x01
cols@6031:    3

col    0[2] @6032: 15
col    1[2] @6035: 15
col  2[600] @6038: CREATE TABLE UNDO$("US#" NUMBER NOT NULL,"NAME" VARCHAR2(30) NOT NULL,"USER#" NUMBER NOT NULL,"FILE#" NUMBER NOT NULL,"BLOCK#" NUMBER NOT NULL,"SCNBAS" NUMBER,"SCNWRP" NUMBER,"XACTSQN" NUMBER,"UNDOSQN" NUMBER,"INST#" NUMBER,"STATUS$" NUMBER NOT NULL,"TS#" NUMBER,"UGRP#" NUMB
ER,"KEEP" NUMBER,"OPTIMAL" NUMBER,"FLAGS" NUMBER,"SPARE1" NUMBER,"SPARE2" NUMBER,"SPARE3" NUMBER,"SPARE4" VARCHAR2(1000),"SPARE5" VARCHAR2(1000),"SPARE6" DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE (  INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO
15 EXTENTS (FILE 1 BLOCK 224))

2.问题解决:

--//花一点点时间改善这个问题,实际上还有许多麻烦事情,比如即使解决了显示宽度问题,还可能遇到半个汉字的问题,还有如果字符
--//串含有回车换行等字符时,情况更加复杂。这种情况暂时不考虑.
--//注意:sed 命令如果里面含$,要使用单引号,调式时在这里浪费许多时间.

$ cat fff.sh
#! /bin/bash -x
# argv1=file_number argv2=begin_block argvs3=end_block argv4=data_object_id argv5=bbed /x fORMat
file_number=$1
begin_block=$2
end_block=$3
data_object_id=$4
ff="/r"${5}

# create sed script.
a=$5
len=$( echo ${#a})
seq $len | xargs -IQ expr substr $a Q 1 | grep -n "[nt]" | sed  "s+:.$+s/ $//+" >| ff.sed
echo "s+^*NULL*$++g" >> ff.sed

# scan1 begin_block to end_block,define Scope.
/bin/rm scan1.txt 2>/dev/null
while [ $begin_block -le $end_block ]
do
    v_object_id=$(echo "p /d dba $file_number,$begin_block  ktbbh.ktbbhsid.ktbbhod1" | rlbbed | grep ktbbhod1 |awk "{print $NF}")
    if [ -z "$v_object_id" ]
    then
            v_object_id=0
    fi

    if (( $v_object_id == $data_object_id ))
    then
            echo $file_number,$begin_block >> scan1.txt
    fi
    begin_block=$[ begin_block + 1 ]
done

# scan2 kdbr and display record.
cat scan1.txt |while read dba
do
    #echo set dba $dba
    kdbr_size=$(echo map dba $dba | rlbbed | grep "sb2 kdbr" | sed -e "s/^.*[//;s/].*$//")
    #echo $kdbr_size

    begin=0
    end=$[ kdbr_size -1 ]
    #echo $begin $end

    while [ $begin -le $end ]
    do
        kdbr_off=$(echo p dba $dba offset 0 kdbr | rlbbed | grep "sb2 kdbr[$begin]" | awk "{print $NF"})
        #echo $kdbr_off
        #if [ $kdbr_off -gt $kdbr_size ]
        if (( $kdbr_off > $kdbr_size ))
        then
            #echo -n "x $ff dba $dba *kdbr[$begin]" | rlbbed  | grep "^col " | cut -c20- | sed -f ff.sed | paste -sd"|"
            #echo -n "x $ff dba $dba *kdbr[$begin]" | rlbbed | sed -n "/^col /,${s/^col .{13}: //;p;}" | sed "/^BBED/,$d" | tr -d " " | sed "1s///" |tr "" " "| sed -f ff.sed| paste -sd"|"
            echo -n "x $ff dba $dba *kdbr[$begin]" | rlbbed | sed -n "/^col /,${s/^col .{13}: /^G/;p;}" | sed "/^BBED/,$d" | tr -d " " | sed "1s/^G//" |tr "^G" " "| sed -f ff.sed| paste -sd"|"
        fi
        begin=$[ begin + 1 ]
    done
done

--//^G 表示 ascii(7).
--//在linux下vim的输入模式,使用如下方法输入,windows下使用ctrl+q代替ctrl+v
ascii(7) 使用ctrl+v ctrl+g 输入。
ascii(6) 使用ctrl+v ctrl+f 输入。

3.测试:
--//改写后的执行结果如下:
$ . fff.sh 4 151 151 87108 nccntnnn
7369|SMITH|CLERK|7902|1980-12-17 00:00:00|800||20
7499|ALLEN|SALESMAN|7698|1981-02-20 00:00:00|1600|300|30
7521|WARD|SALESMAN|7698|1981-02-22 00:00:00|1250|500|30
7566|JONES|MANAGER|7839|1981-04-02 00:00:00|2975||20
7654|MARTIN|SALESMAN|7698|1981-09-28 00:00:00|1250|1400|30
7698|BLAKE|MANAGER|7839|1981-05-01 00:00:00|2850||30
7782|CLARK|MANAGER|7839|1981-06-09 00:00:00|2450||10
7788|SCOTT|ANALYST|7566|1987-04-19 00:00:00|3000||20
7839|KING|PRESIDENT||1981-11-17 00:00:00|5000||10
7844|TURNER|SALESMAN|7698|1981-09-08 00:00:00|1500|0|30
7876|ADAMS|CLERK|7788|1987-05-23 00:00:00|1100||20
7900|JAMES|CLERK|7698|1981-12-03 00:00:00|950||30
7902|FORD|ANALYST|7566|1981-12-03 00:00:00|3000||20
7934|MILLER|CLERK|7782|1982-01-23 00:00:00|1300||10

$ . fff.sh 1 521 523 59 nnc | grep -ni undo
8:15|15|CREATE TABLE UNDO$("US#" NUMBER NOT NULL,"NAME" VARCHAR2(30) NOT NULL,"USER#" NUMBER NOT NULL,"FILE#" NUMBER NOT NULL,"BLOCK#" NUMBER NOT NULL,"SCNBAS" NUMBER,"SCNWRP" NUMBER,"XACTSQN" NUMBER,"UNDOSQN" NUMBER,"INST#" NUMBER,"STATUS$" NUMBER NOT NULL,"TS#" NUMBER,"UGRP#" NUMBER,"KEEP" NUMBER,"OPTIMAL" NUMBER,"FLAGS" NUMBER,"SPARE1" NUMBER,"SPARE2" NUMBER,"SPARE3" NUMBER,"SPARE4" VARCHAR2(1000),"SPARE5" VARCHAR2(1000),"SPARE6" DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE (  INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 15 EXTENTS (FILE 1 BLOCK 224))
9:34|34|CREATE UNIQUE INDEX I_UNDO1 ON UNDO$(US#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (  INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 34 EXTENTS (FILE 1 BLOCK 320))
10:35|35|CREATE INDEX I_UNDO2 ON UNDO$(NAME) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (  INITIAL 64K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 35 EXTENTS (FILE 1 BLOCK 328))
32:16|16|CREATE TABLE TS$("TS#" NUMBER NOT NULL,"NAME" VARCHAR2(30) NOT NULL,"OWNER#" NUMBER NOT NULL,"ONLINE$" NUMBER NOT NULL,"CONTENTS$" NUMBER NOT NULL,"UNDOFILE#" NUMBER,"UNDOBLOCK#" NUMBER,"BLOCKSIZE" NUMBER NOT NULL,"INC#" NUMBER NOT NULL,"SCNWRP" NUMBER,"SCNBAS" NUMBER,"DFLMINEXT" NUMBER NOT NULL,"DFLMAXEXT" NUMBER NOT NULL,"DFLINIT" NUMBER NOT NULL,"DFLINCR" NUMBER NOT NULL,"DFLMINLEN" NUMBER NOT NULL,"DFLEXTPCT" NUMBER NOT NULL,"DFLOGGING" NUMBER NOT NULL,"AFFSTRENGTH" NUMBER NOT NULL,"BITMAPPED" NUMBER NOT NULL,"PLUGGED" NUMBER NOT NULL,"DIRECTALLOWED" NUMBER NOT NULL,"FLAGS" NUMBER NOT NULL,"PITRSCNWRP" NUMBER,"PITRSCNBAS" NUMBER,"OWNERINSTANCE" VARCHAR2(30),"BACKUPOWNER" VARCHAR2(30),"GROUPNAME" VARCHAR2(30),"SPARE1" NUMBER,"SPARE2" NUMBER,"SPARE3" VARCHAR2(1000),"SPARE4" DATE) STORAGE (  OBJNO 16 TABNO 2) CLUSTER C_TS#(TS#)

--//顺便测试半个汉字的问题.

SCOTT@book> create table tx (id number ,vc varchar2(30),vx varchar2(400));
Table created.

SCOTT@book> insert into tx values (3,"测试x",lpad("测试",300,"文"));
1 row created.

SCOTT@book> commit ;
Commit complete.

SCOTT@book> select rowid from tx;
ROWID
------------------
AAAW1lAAEAAAALkAAA

SCOTT@book> @ rowid AAAW1lAAEAAAALkAAA
    OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
     93541          4        740          0  0x10002E4           4,740                alter system dump datafile 4 block 740 ;

SCOTT@book> alter system checkpoint ;
System altered.

$ export NLS_LANG=AMERICAN_AMERICA.US7ASCII
$ rlbbed
BBED: Release 2.0.0.0.0 - Limited Production on Wed Sep 1 09:47:04 2021
Copyright (c) 1982, 2011, oracle and/or its affiliates.  All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************

BBED> set count 64
        COUNT           64

BBED> set width 300
        WIDTH           300

BBED> x /rncc dba 4,740  *kdbr[0]
rowdata[0]                                  @7873
----------
flag@7873: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@7874: 0x01
cols@7875:    3

col    0[2] @7876: 3
col    1[5] @7879: 测试x
col  2[300] @7885: 文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文?
奈奈奈奈奈奈奈奈奈奈牟馐?
--//显示乱码.bbed设置width 300,每行最大显示275,这样出现半个汉字的情况.

--//如果设置 width 299,显示正常.
BBED> set width 299
        WIDTH           299

BBED> x /rncc dba 4,740  *kdbr[0]
rowdata[0]                                  @7873
----------
flag@7873: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@7874: 0x01
cols@7875:    3

col    0[2] @7876: 3
col    1[5] @7879: 测试x
col  2[300] @7885: 文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文
文文文文文文文文文文文测试

$ . fff.sh 4 740 740 93541 ncc > /tmp/aa1.txt
--//使用vim编辑器打开显示正常,太长不贴出了.

$ cut -c201- /tmp/aa1.txt
文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文测试
--//这也验证了显示正常.

4.收尾:
--//测试完成注意收尾.不然字符集不对导致插入的中文乱码问题.
$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK


您可能感兴趣的文档:

--结束END--

本文标题: [20210831]bbed读取数据块6.txt

本文链接: https://www.lsjlt.com/news/8711.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • [20210831]bbed读取数据块6.txt
    [20210831]bbed读取数据块6.txt--//前一段时间使用自己写的脚本读取数据块,遇到1个小问题,就是字段串超长就仅仅显示1段。--//实际上bbed最大显示宽度是300,我测试最大显示275个字符.1.问题提出:BBED> ...
    99+
    2019-11-20
    [20210831]bbed读取数据块6.txt
  • [20210930]bbed读取数据块7 fffext.sh.txt
    [20210930]bbed读取数据块7 fffext.sh.txt--//一般bash shell脚本很少考虑执行效率,仅仅考虑利用它快速解决工作中遇到的问题.--//以前写的bbed读取数据块的脚本调用bbed次数太多,尝试改进脚本,...
    99+
    2014-07-25
    [20210930]bbed读取数据块7 fffext.sh.txt
  • python怎么读取txt数据
    这篇“python怎么读取txt数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python怎么读取txt数据”文章吧。1...
    99+
    2023-06-30
  • python从txt文件读取数据
      (作为一个python初学者,记录一点学习期间的笔记,方便日后查阅,若有错误或者更加便捷的方法,望指出!)  1、读取TXT文件数据,并对其中部分数据进行划分。一部分作为训练集数据,一部分作为测试集数据: def loadData(...
    99+
    2023-01-30
    文件 数据 python
  • python读取txt数据的操作步骤
    目录1、操作步骤2、代码实现路径问题 函数说明数据处理1、操作步骤 (1)打开文件读取整个文件 函数open返回一个表示文件的对象,对象存储在infile中。关键字with...
    99+
    2022-11-10
  • PHP怎么从txt文件中读取数据
    这篇文章主要介绍了PHP怎么从txt文件中读取数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、打开/关闭文件对文件操作时首先要打开文件,打开文件用 fopen()函数,...
    99+
    2023-06-29
  • C#读取txt文件数据的方法实例
    第一步新建txt文件,写入内容 我是放在D盘下的,数据以逗号隔开的,是英文逗号 第二步读取数据 在需要读取数据的页面,添加代码,就可以了 private void Phone...
    99+
    2022-11-12
  • 教你利用python如何读取txt中的数据
    目录前言方法一:运用open()函数方法二:使用numpy包的loadtxt方法方法三:使用pandas的read_table方法进行读取总结前言 当我们在用python时可能会遇到...
    99+
    2022-11-13
  • PHP如何从txt文件中读取数据详解
    目录一、打开/关闭文件二、读写文件1、读取整个文件2、读取一行数据3、读取一个字符4、读取任意长度的字符串总结 一、打开/关闭文件 1、对文件操作时首先要打开文件,打开文件...
    99+
    2022-11-13
  • Python 读取数据并保存为txt文件的方式
     首先是读取文件,这里使用了pandas库 import pandas as pddata_train = pd.read_csv("train_dataset.csv", encoding='utf-8',sep='|')train_co...
    99+
    2023-09-27
    python 开发语言
  • 一起聊聊PHP如何从txt文件中读取数据
    本篇文章主要给大家介绍了关于PHP的相关知识,主要给大家介绍了关于PHP如何从txt文件中读取数据的相关资料,文中通过实例代码以及图文介绍的非常详细,对大家学习或者使用PHP具有一定的参考学习价值,希望对大家有帮助。(推荐教程:PHP视频教...
    99+
    2022-08-08
    php
  • Pandas数据集的分块读取的实现
    目录一、直接用分块方式读取数据集文件(更直接)二、先将数据集读取为可迭代对象,再分块读取(更灵活)总结所谓“分块”,顾名思义,就是将数据集分成几块进行读取,比...
    99+
    2022-11-11
  • Python读取指定的TXT文本文件并从中提取指定数据的方法
      本文介绍基于Python语言,遍历文件夹并从中找到文件名称符合我们需求的多个.txt格式文本文件,并从上述每一个文本文件中,找到我们需要的指定数据,最后得到所有文本文件中我们需要的数据的合集的方法...
    99+
    2023-09-15
    Python TXT 文本文件 数据提取 文件遍历 读取txt文件 文本文件遍历
  • nodejs中如何使用node-xlsx模块读取excel数据
    这篇文章给大家分享的是有关nodejs中如何使用node-xlsx模块读取excel数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.安装node-xlsxnode-xlsx模块 用于读取xlsx文件中的内容...
    99+
    2023-06-14
  • Python利用GDAL模块实现读取栅格数据并对指定数据加以筛选掩膜
    目录1 代码分段讲解1.1 模块与路径准备1.2 栅格图像文件名读取与配对1.3 输出文件名称准备1.4 栅格文件数据与信息读取1.5 差值计算与QA波段筛选1.6 结果栅格文件写入...
    99+
    2023-02-23
    Python GDAL读取栅格数据 Python GDAL读取数据 Python GDAL Python读取栅格数据
  • Python怎么用GDAL模块实现读取栅格数据并对指定数据加以筛选掩膜
    这篇文章主要讲解了“Python怎么用GDAL模块实现读取栅格数据并对指定数据加以筛选掩膜”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么用GDAL模块实现读取栅格数据并对指定...
    99+
    2023-07-06
  • Python如何利用GDAL模块实现读取栅格数据并对指定数据加以筛选掩膜
    1 代码分段讲解1.1 模块与路径准备首先,需要对用到的模块与存放栅格图像的各类路径加以准备。import os import copy import numpy as np import pylab as plt from osgeo i...
    99+
    2023-05-15
    Python gdal
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作