Oracle rowid

SYS@ prod>select rowid from scott.emp;ROWID
------------------
AAASPXAAEAAAACVAAA
AAASPXAAEAAAACVAAB
AAASPXAAEAAAACVAAC
AAASPXAAEAAAACVAAD
AAASPXAAEAAAACVAAE?

ROWID的格式如下:

數據對象編號 文件編號 塊編號 行編號
AAASPX AAE AAAACV AAA

我們可以看出,從上面的rowid可以得知:
AAASPX?是數據對象編號 (data_object)
AAE?是數據文件編號 (datafile)
AAAACV?是塊編號 (block)
AAA 是行編號 (row)

怎么依據這些編號得到具體的十進制的編碼值呢

這里需要明白rowid的是基于64位編碼的18個字符顯示(數據對象編號(6) +文件編號(3) +塊編號(6)+ 行編號 (3)=18位),其中
A-Z <==> 0 - 25 (26)
a-z <==> 26 - 51 (26)
0-9 <==> 52 - 61 (10)
+/ <==> 62 - 63 (2)

共64位,明白這個后,就可以計算出10進制的編碼值,計算公式如下:
d * (b ^ p)
其中:b就是基數,這里就是64,p就是從右到左,以0開始的位置數
比如:上面的例子
對象號AAASPX?,具體的計算應該是:
0*(64^5)=5;0*(64^4)=0;0*(64^3)=0;18*(64^2)=73728;15*(64^1)=960;23*(64^0)=23;

對象號就是73728+960+23=74711

剛才提到的是rowid的顯示方式:基于64位編碼的18個字符顯示,其實rowid的存儲方式是:10 個字節即80位存儲,其中數據對象編號需要32 位,相關文件編號需要10 位,塊編號需要22,位行編號需要16 位,由此,我們可以得出:
32bit的object number,每個數據庫最多有4G個對象
10bit的file number,每個對象最多有1022個文件(2個文件預留)
22bit的block number,每個文件最多有4M個BLOCK
16bit的row number,每個BLOCK最多有64K個ROWS

2. rowid相關的有用的sql

通過dbms_rowid這個包,可以直接的得到具體的rowid包含的信息:

SYS@ prod>select dbms_rowid.rowid_object(rowid) object_id, dbms_rowid.rowid_relative_fno(rowid) file_id,2  dbms_rowid.rowid_block_number(rowid) block_id ,dbms_rowid.rowid_row_number(rowid) num from scott.emp 3  where rownum<5;OBJECT_ID    FILE_ID   BLOCK_ID        NUM
---------- ---------- ---------- ----------74711          4        149          0
     74711          4        149          174711          4        149          274711          4        149          3?

一些使用ROWID的函數
ROWIDTOCHAR(rowid) :將ROWID轉換成STRING
CHARTOROWID('rowid_string') :將STRING轉換成ROWID

如果沒有dbms包的權限可以用下面的方法

select
(case when to_number(utl_raw.cast_to_raw(substr(rowid,1,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,1,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,1,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,1,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,1,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,1,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,1,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,1,1)),'xxx') = 47 then 63 end)*power(64,5)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,2,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,2,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,2,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,2,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,2,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,2,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,2,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,2,1)),'xxx') = 47 then 63 end)*power(64,4)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,3,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,3,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,3,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,3,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,3,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,3,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,3,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,3,1)),'xxx') = 47 then 63 end)*power(64,3)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,4,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,4,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,4,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,4,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,4,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,4,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,4,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,4,1)),'xxx') = 47 then 63 end)*power(64,2)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,5,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,5,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,5,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,5,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,5,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,5,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,5,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,5,1)),'xxx') = 47 then 63 end)*power(64,1)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,6,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,6,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,6,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,6,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,6,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,6,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,6,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,6,1)),'xxx') = 47 then 63 end)*power(64,0) as object_cd,
(case when to_number(utl_raw.cast_to_raw(substr(rowid,7,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,7,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,7,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,7,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,7,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,7,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,7,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,7,1)),'xxx') = 47 then 63 end)*power(64,2)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,8,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,8,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,8,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,8,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,8,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,8,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,8,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,8,1)),'xxx') = 47 then 63 end)*power(64,1)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,9,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,9,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,9,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,9,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,9,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,9,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,9,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,9,1)),'xxx') = 47 then 63 end)*power(64,0) as file_no,
(case when to_number(utl_raw.cast_to_raw(substr(rowid,10,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,10,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,10,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,10,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,10,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,10,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,10,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,10,1)),'xxx') = 47 then 63 end)*power(64,5)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,11,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,11,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,11,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,11,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,11,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,11,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,11,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,11,1)),'xxx') = 47 then 63 end)*power(64,4)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,12,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,12,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,12,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,12,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,12,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,12,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,12,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,12,1)),'xxx') = 47 then 63 end)*power(64,3)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,13,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,13,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,13,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,13,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,13,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,13,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,13,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,13,1)),'xxx') = 47 then 63 end)*power(64,2)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,14,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,14,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,14,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,14,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,14,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,14,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,14,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,14,1)),'xxx') = 47 then 63 end)*power(64,1)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,15,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,15,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,15,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,15,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,15,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,15,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,15,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,15,1)),'xxx') = 47 then 63 end)*power(64,0) as block_no,
(case when to_number(utl_raw.cast_to_raw(substr(rowid,16,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,16,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,16,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,16,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,16,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,16,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,16,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,16,1)),'xxx') = 47 then 63 end)*power(64,2)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,17,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,17,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,17,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,17,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,17,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,17,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,17,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,17,1)),'xxx') = 47 then 63 end)*power(64,1)+
(case when to_number(utl_raw.cast_to_raw(substr(rowid,18,1)),'xxx') between 48 and 58 then to_number(utl_raw.cast_to_raw(substr(rowid,18,1)),'xxx')+4 when to_number(utl_raw.cast_to_raw(substr(rowid,18,1)),'xxx') between 65 and 91 then to_number(utl_raw.cast_to_raw(substr(rowid,18,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,18,1)),'xxx') between 97 and 123 then to_number(utl_raw.cast_to_raw(substr(rowid,18,1)),'xxx')-65 when to_number(utl_raw.cast_to_raw(substr(rowid,18,1)),'xxx') = 43 then 62 when to_number(utl_raw.cast_to_raw(substr(rowid,18,1)),'xxx') = 47 then 63 end)*power(64,0) as row_no
from scott.emp;

?

轉載于:https://www.cnblogs.com/zhaochunyi/p/10931094.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248874.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248874.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248874.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue項目配置eslint(附visio studio code配置)

eslint基礎環境搭建 全局安裝eslint&#xff1a;npm install eslint -g 項目eslint初始化&#xff1a;eslint --init&#xff0c;按團隊或自己的編程風格回答三道題。 ? How would you like to configure ESLint? Use a popular style guide ? Which style guide do you w…

從數據庫中取出數據表,導入并生成excel

RequestMapping("/numericalStatement1")public void createExcel(HttpServletResponse resp) throws Exception{try {String path "G:/test.xlsx";// 創建新的Excel 工作簿XSSFWorkbook workbook new XSSFWorkbook();// 在Excel工作簿中建一工作表&…

【vue-router①】router-link跳轉頁面傳遞參數 - 進擊的前端之路(偶爾爬坑java小路) - SegmentFault 思否

在vue項目中&#xff0c;往往會遇到這樣的情況&#xff0c;就是要實現在一個循環列表中&#xff0c;點擊其中一條跳轉到下個頁面&#xff0c;然后將這一條的相關數據帶到下個頁面中顯示&#xff0c;這是個循環列表&#xff0c;無論點哪一條都是跳到相同的頁面&#xff0c;只是填…

RHEL7 USB installation problem and solving

版權聲明&#xff1a;本文為博主原創文章。未經博主同意不得轉載。 https://blog.csdn.net/scruffybear/article/details/37063701 Encountered quite a few problems while install the RHEL7, with the Windows system already installed. Problem 1:/dev/root does not exis…

Vue表單類的父子組件數據傳遞示例_vue.js_腳本之家

使用Vue.js進行項目開發&#xff0c;那必然會使用基于組件的開發方式&#xff0c;這種方式的確給開發和維護帶來的一定的便利性&#xff0c;但如果涉及到組件之間的數據與狀態傳遞交互&#xff0c;就是一件麻煩事了&#xff0c;特別是面對有一大堆表單的頁面。 在這里記錄一下…

Jmeter-【JSON Extractor】-響應結果中三級key取值

一、請求返回樣式 二、取第三個option 三、查看結果 轉載于:https://www.cnblogs.com/Nancy-Lee/p/10938758.html

Day5:python之函數(3)

一、函數默認值參數 內置函數&#xff1a; input&#xff08;&#xff09;、print&#xff08;&#xff09;、int&#xff08;&#xff09; 常用模塊&#xff1a; 1、列表生成式 s [1,2,3,4,5,6,7,8] for i in s:print(i1) res [ i1 for i in s] res [str(i) for i in s]prin…

vue路由傳參的三種基本方式 - 流年的櫻花逝 - SegmentFault 思否

現有如下場景&#xff0c;點擊父組件的li元素跳轉到子組件中&#xff0c;并攜帶參數&#xff0c;便于子組件獲取數據。 父組件中&#xff1a; <li v-for"article in articles" click"getDescribe(article.id)"> methods&#xff1a; 方案一&#…

Rust從入門到放棄(1)—— hello,world

安裝及環境配置 特點&#xff1a;安全&#xff0c;性能&#xff0c;并發rust源配置RLS安裝cargo rust管理工具&#xff0c;該工具可以愉快方便的管理rust工程 #!/bin/bash mkdir learn cd learn cargo init ## 該命令會在當前目錄下初始化一個## 目錄下會出現一個Cargo.toml文…

牛客33-tokitsukaze and Number Game(數論)

題目描述 tokitsukaze又在玩3ds上的小游戲了&#xff0c;現在她遇到了難關。 tokitsukaze得到了一個整數x&#xff0c;并被要求使用x的每一位上的數字重新排列&#xff0c;組成一個能被8整除的數&#xff0c;并且這個數盡可能大。 聰明的你們請幫幫可愛的tokitsukaze&#xff0…

手摸手,帶你用vue擼后臺 系列一(基礎篇) - 掘金

完整項目地址&#xff1a;vue-element-admin 系列文章&#xff1a; 手摸手&#xff0c;帶你用 vue 擼后臺 系列一&#xff08;基礎篇&#xff09;手摸手&#xff0c;帶你用 vue 擼后臺 系列二(登錄權限篇)手摸手&#xff0c;帶你用 vue 擼后臺 系列三 (實戰篇)手摸手&#xf…

21、python基礎學習-new_three_menu

1 #!/usr/bin/env python2 #__author: hlc3 #date: 2019/5/294 5 menu {6 北京: {7 海淀: {8 五道口: {9 soho: {}, 10 網易: {}, 11 google: {} 12 }, 13 中關村: { 14 …

文獻筆記(十六)

一、基本信息 標題&#xff1a;一種基于 C 語言訪問 MySQL 數據庫的研究 時間&#xff1a;2016 出版源&#xff1a;貴州輕工職業技術學院 領域分類&#xff1a;數據庫與信息管理 作者&#xff1a;唐林 副教授&#xff0c; 研究方向&#xff1a; 計算機應用 二、研究背景 相關工…

webpack+vue+mui學習心得

引入mui 1.不需要npm安裝; 直接從官方下載丟進來 2.那就是全局引用了; 沒錯,就是index.html里直接引入,當然也可以main.js引入,隨意啦! so easy 3.找到webpack.base.conf.js,在module與plugins之間插入以下代碼: 4.這樣就可以在項目里面直接用了.然就是mui與vue-router及點…

[java設計模式簡記] 觀察者模式(Observer-Pattern)

觀察者模式(Observer-Pattern) 數據主體擁有需要數據的對象的數據&#xff0c;并且數據改變時需要數據的對象要及時知道 意圖&#xff1a; 定義對象間的一種一對多的依賴關系&#xff0c;當一個對象的狀態發生改變時&#xff0c;所有依賴于它的對象都得到通知并被自動更新。主要…

【ARTS】01_04_左耳聽風-20181203~1209

ARTS&#xff1a; Algrothm: leetcode算法題目Review: 閱讀并且點評一篇英文技術文章Tip/Techni: 學習一個技術技巧Share: 分享一篇有觀點和思考的技術文章Algorithm Single Number https://leetcode.com/problems/single-number/ 1&#xff09;problem Given a non-empty arra…

vue項目(webpack+mintui),使用hbuilder打包app - 小小人兒大大夢想 - 博客園

一、配置config/index.js 本人沒有配置index.js文件&#xff0c;就開始進行了打包&#xff0c;結果最終效果是頁面空白&#xff0c;解決了空白&#xff0c;接著底部圖標&#xff08;我是用的阿里巴巴圖片&#xff09;資源找不到。所以配置這步比較重要。 &#xff08;1&#…

caffe介紹

轉載于:https://www.cnblogs.com/Artimis-fightting/p/10945099.html

python-mysql 基礎知識記錄

cursor.fetchone() 與 cursor.fetchall() 如果查詢結果為空&#xff0c;前者返回 None&#xff0c;后者返回[] 此時如用 len() 函數計算長度&#xff0c;前者報錯&#xff0c;后者返回0 轉載于:https://www.cnblogs.com/ZuoAn-xieyang/p/10097230.html

微服務之consul(一) - 詩碼者 - 博客園

一、概述 consul是google開源的一個使用go語言開發的服務發現、配置管理中心服務。內置了服務注冊與發現框 架、分布一致性協議實現、健康檢查、Key/Value存儲、多數據中心方案&#xff0c;不再需要依賴其他工具&#xff08;比如ZooKeeper等&#xff09;。服務部署簡單&#x…