西汉侯国地理(修订本)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

二、《史记索隐》侯国地理信息之史料来源

在《史记》三家注中,唐人司马贞的《史记索隐》被公认为是质量最高的一部。明人毛晋曰:“读史家多尚《索隐》,宋儒尤雅推小司马《史记》,与小颜氏《汉书》如日月并照。”[1]又近人朱东润有言:“《索隐》语颇详密,又少异同,其所以凌驾裴、张,取重后世者,非无故也。”[2]而在《史记索隐》中,司马贞对《史表》中的侯国几乎都标注了方位。由于《史记索隐》对后世影响较大,故历来研究西汉侯国地望者,常引述《索隐》的说法。但唐代距西汉毕竟有千年之遥,司马贞何从知晓西汉时代的侯国方位,这还是让人怀疑。因此我们有必要对司马贞的这些说法,从史料来源上进行考察。

仔细分析《史记索隐》的侯国注文,可以看到绝大多数的条目都写作“县名,属某郡”,或是“《表》在某某”。《史记·高祖功臣侯者年表》汝阴侯条《索隐》曰:“凡县名皆据《地理志》,不言者,从省文也。”又《史记·建元以来王子侯者年表》朝侯条《索隐》曰:“凡侯不言郡县,皆《表》、《志》阙。”不难看出,司马贞对西汉侯国方位的确定,主要根据《汉志》、《汉表》。如果他对侯国方位没有标示,就说明在《汉志》和《汉表》中均找不到该侯国的定位信息。其实,除了《汉志》和《汉表》外,司马贞还利用了《晋书·地道记》(以下简称《晋记》)。如司马贞注《高祖功臣侯者年表》阳都侯条曰:“《汉志》阙。《晋书·地道记》属琅邪。”又同篇蒯成侯条曰:“《汉志》阙。《晋书·地道记》属北地。”[3]以上记载表明,当《汉志》、《汉表》均无资料可供利用时,司马贞还会从《晋记》中寻找相关线索。遍检《史记索隐》侯国注文,不再见有司马贞利用其他文献资料。由此可见,司马贞在为《史表》侯国进行定位时,主要利用了《汉志》、《汉表》、《晋记》三种文献。

《汉志》、《汉表》为常见文献。王隐《晋书》虽已亡佚,但该书《地道记》所记为西晋初年之行政建制,其时距西汉已有三百余年,当然不会保留有西汉侯国信息,[4]故司马贞标注侯国方位时,此书仅作备考。从所用文献来看,司马贞并无出众之处,其对西汉侯国的定位自然难以得出过人的结论。

司马贞的西汉侯国定位乃是以《汉志》、《汉表》为基础,而分析《史记索隐》侯国注文,司马贞侯国定位的依据也是地名。如某侯国名称与《汉志》县邑名称相同,司马贞便将二者直接对应,故所犯“张冠李戴”的错误较《水经注》有过之而无不及。如齐王子刘雄渠之白石侯国(195),司马贞以为即《汉志》金城郡之白石县。殊不知西汉边郡不封侯国,且白石县地,文帝时尚未属汉。又如高帝功臣傅宽所封之阳陵侯国(5),《索隐》曰:“阳陵县,属冯翊。”殊不知西汉畿辅不置侯国,且阳陵为景帝陵邑,何以封予列侯?如果同样的地名两见于《汉志》,司马贞索性将两处地名全部标出,让读者自行判断。《史记·建元以来侯者年表》宜春侯条《索隐》曰:“《志》县名,属汝南,豫章亦有之。”又如《史记·惠景间侯者年表》平陆侯条《索隐》曰:“县名,属西河。又有东平陆,在东平。”类似这样的问题,《史记索隐》中比比皆是,究其原因,乃是司马贞附会地名,而不加辨析之故。杨守敬曰“《索隐》往往于侯国妄为之说”,[5]盖不虚矣。

《史记索隐》对侯国方位的解释主要抄录《汉志》、《汉表》,但司马贞对《汉志》、《汉表》的检核并不细心,一些明载于《汉志》的县邑名称,他却未能检出,概称“《志》阙”。钱大昕批评道:

《索隐》虽知讨寻《表》、《志》,亦多疏漏。如城阳有阳都,北海有都昌,辽西有海阳,东莱有曲成,胶东有昌武,楚有武原,东海有戚,南阳有山都,沛有广戚,临淮有盱眙,涿有阿武、樊舆,《志》文俱在,而小司马皆以为阙。南阳、清河皆有复阳,南阳、济南皆有朝阳,平原、琅邪皆有平昌,而小司马仅举其一。又如傅宽封阳陵侯,非冯翊之阳陵;虫达封曲成侯,非涿郡之曲成;吴程封义陵侯,非汝南之义阳;刘勃封安阳侯,非冯翊之安陵;父城侯刘光非辽西之文城。名同实异,小司马皆不能别白,乃知班氏得古史阙文之遗意也。[6]

钱大昕指出司马贞于《汉志》、《汉表》往往漏检,可见司马氏对《史表》的注释甚为随意,这样的考释结论自然不应作为我们引据的对象。

司马贞的西汉侯国定位基本抄录《汉志》、《汉表》,而他对《志》、《表》的检核又不细心。可以说,对于西汉侯国地理研究而言,《史记索隐》既无史料价值,又无学术价值。因此我们在进行相关侯国地望考证时,不应再引述《索隐》的说法,而应当直接引据《索隐》所本之《汉志》、《汉表》。不过,如果仔细分析《史记索隐》的侯国注文,可以发现司马贞所见《史表》、《汉表》与今本《史表》、《汉表》略有差异,因此也就具有了校勘今本《史表》、《汉表》的版本价值。

今本《汉书·王子侯表》柳宿侯条无下注郡名。《史记·建元以来王子侯者年表》柳宿侯条《索隐》曰“《表》在涿郡”。则司马贞所见唐本《汉表》柳宿侯条注有“涿”。查柳宿侯刘盖(395)为中山王子,而同日受封之中山王子侯国皆别属涿郡,则刘盖之柳宿侯国地处涿郡合乎情理。《汉书·外戚传》曰:“翁须乘长儿车马过门,呼曰:‘我果见行,当之柳宿。’”三国人苏林注曰:“聚邑名也,在中山卢奴东北三十里。”又《元和郡县志》定州望都县载:“柳宿城,县东南四十二里,宣帝母王夫人微时,泣别于柳宿城,即此地也。”[7]根据以上记载,柳宿城之地望于西汉正在中山国与涿郡之间,即今望都县贾村乡柳絮村。[8]则《汉表》柳宿侯条下注“涿”字可信。今本《汉表》柳宿侯条当脱漏“涿”字。

又《史记·建元以来王子侯者年表》邵侯条《索隐》曰“《表》在山阳”。今本《汉书·王子侯表》邵侯条无下注郡名,则唐本《汉表》邵侯条注有“山阳”。居延汉简常见昌邑国邵县,昌邑国为武帝时以山阳郡改置,可知山阳郡确有邵侯国(335)。[9]《索隐》所引《汉表》可信。

以上是根据《索隐》校补今本《汉表》脱漏的两个例证,接下来再举两个利用《索隐》校正今本《汉表》讹误的例子。[10]

《汉书·王子侯表》东淮侯条注有“北海”,但东淮侯刘类(455)为城阳王子,北海郡不与城阳国相接,城阳王子侯国何以远至北海郡?查《史记·建元以来王子侯者年表》东淮侯条《索隐》曰:“《表》在东海”。东海郡与城阳国相邻,唐本《汉表》所注可信,今本《汉表》东淮侯条下注“北海”当为“东海”之讹误。

《汉书·景武昭宣元成功臣表》博成侯条下注“淮阳”,博成侯(595)受封于地节四年(前66年),然元康三年(前63年)以后淮阳为王国,王国境内不应置有侯国。且《汉表》下注“淮阳”者,仅此一例。查《史记·建元以来侯者年表》博成侯条,《索隐》曰“《表》在临淮”,则今本《汉表》博成侯条之“淮阳”乃“临淮”讹误。

上面所举的四个例证是利用《索隐》来对勘《汉表》下注郡名的脱漏和讹误。而事实上,利用《索隐》我们还可以对《史表》所记录的侯国名称进行校勘。[11]这里附带举两个例子。

《史记·惠景间侯者年表》载有清都侯驷钧(182)。而《史记·孝文本纪》记作清郭侯驷钧。《史表》清都侯条引《索隐》曰:“清郭侯驷钧。齐封田婴为清郭君。”显然,司马贞所见唐本《史表》写作“清郭”,与《孝文本纪》相合。又汲古阁刻十七史本《史记·惠景间侯者年表》所记驷钧封号亦为“清郭”。[12]由此可见,中华书局点校本《史表》之“清都”乃“清郭”讹误,[13]今可据《索隐》、汲古阁本《史记》改正。

《史记·建元以来王子侯者年表》载有父城侯刘光(447)。《汉书·王子侯表》作文成侯。《索隐》曰:“《志》在辽西。”查《汉志》辽西郡有文成县,则司马贞所见唐本《史表》亦作文成侯,今本《史表》之“父城”为“文成”讹误。

从这些例证可以看出,与今本《史表》、《汉表》相比,司马贞在《史记索隐》中引录的《史表》、《汉表》保留了某些唐代古本面貌。在文献流传过程中,《史表》、《汉表》侯国名称不可避免地会发生讹误,而《汉表》下注郡县名发生脱漏、讹误、窜格的现象更为严重。利用《索隐》记录的古本信息,我们可以对今本《史表》、《汉表》进行校订和勘误,从这一点来讲,《史记索隐》具有一定文献校勘价值,应当引起我们的重视。

《索隐》某些侯国注文所引用的《汉表》记载,同样不见于今本《汉表》相对应的侯国条目,这些还不能一概视作今本《汉表》之脱漏。如《史记·惠景间侯者年表》阳信侯条《索隐》曰:“《表》在新野。”查《汉书·高惠高后文功臣表》阳信侯条无下注县名,这是否意味着《汉表》阳信侯条原本注有“新野”,后因文献传抄而脱漏?[14]实则不然。《索隐》此注文乃移录自《汉书·外戚恩泽侯表》阳新侯条。对此,清人梁玉绳已有察觉,故曰:“考《汉表》并无‘新野’之文,因《外戚恩泽表》阳新侯郑业封下有‘新野’字而误。”[15]又《汉书·景武昭宣元成功臣表》遽侯条无下注郡名,但《史记·惠景间侯者年表》遽侯条《索隐》曰:“案《汉表》乡名,在常山。”此语显然抄自《汉书·王子侯表》遽乡侯条。考《索隐》侯国条目所引《汉表》下注郡县名,有相当比例移录自其他侯国条目。今试将《高祖功臣侯者年表》、《惠景间侯者年表》中,司马贞转录《汉表》的侯国条目加以归纳,并列出各条的来源(见表2-1)。对于《索隐》引文的这一特点,还需留意。

表2-1 《高祖功臣侯者年表》、《惠景间侯者年表》部分侯国条目《索隐》注文史料来源

明确了《索隐》的体例特点,我们可以对某些具体问题作深入考辨。《史记·惠景间侯者年表》载有商陵侯赵周(227)。《索隐》曰:“《汉表》在临淮。”查《汉表》商陵侯条无下注郡名,全祖望以为《汉表》脱漏“临淮”。[16]其实,《索隐》此注文乃转录《汉书·王子侯表》南陵侯条下注。王荣商已指出:“商陵侯赵周……《百官表》作南陵。《王子侯表》南陵在临淮。此《索隐》所本,非脱也。”[17]王氏所言极是,但称司马贞因《百官表》书有“南陵侯赵周”而转录《王子侯表》则未必属实。[18]前面已经提到,司马贞注《史表》主要依据《汉志》、《汉表》、《晋记》,并未参考《百官表》。且若《史表》明书“商陵”,司马贞仅据《百官表》而转引《汉表》南陵侯注文也显草率。显然,司马贞直接转引《王子侯表》南陵条注文,乃是因其所见唐本《史表》写作“南陵”,这一版本信息与《百官表》“南陵侯赵周”可相对应。今本《史表》之“商陵”当为“南陵”讹误。

虽然唐本《史表》所记赵周、刘庆封国名称皆为“南陵”,但司马贞据此定两侯国为一地的做法并不妥当。景帝时代之列侯为整县受封,而受封于武帝晚期的赵王子刘庆,其所封之南陵应为乡聚,[19]与赵周之南陵侯国绝非一地。张家山汉简《二年律令·秩律》南阳郡属县见有南陵,秦封泥亦见“南陵丞印”,[20]知秦代已置有南陵县,延续至汉初,此南陵县当即赵周封国所在。[21]

[1] 毛晋:《跋〈史记索隐〉后》,见《史记索隐》,明汲古阁刻本。

[2] 朱东润:《司马贞〈史记索隐〉说例》,收入氏著《史记考索》,上海:华东师范大学出版社,1996年,第141页。

[3] 司马贞引用《晋记》的其他例证,本书限于篇幅,不一一列举。

[4] 从清人毕沅所搜集的《地道记》佚文来看,《地道记》并没有记录西汉侯国信息,司马贞根据晋代的行政区划来为西汉侯国定位的方法是很危险的。参见毕沅:《晋书地道记》,《丛书集成初编》,北京:中华书局,1985年。

[5] 《水经注疏》卷九,第874页。

[6] 钱大昕:《潜研堂集》,第185—186页。

[7] (唐)李吉甫:《元和郡县志》卷一八,北京:中华书局,1983年,第512页。

[8] 曲英杰:《燕地古城考》,北京:社会科学文献出版社,2018年,第109—110页。

[9] 参见下编第五章第二节考述。

[10] 有关《索隐》所引《汉表》与今本《汉表》的差别,请参看本编第一章表1-2相关注释。

[11] 《史记索隐》在唐代为单行流传,直到宋代才被散列入《史记》正文,合编刊刻(见《四库全书》研究所整理:《钦定四库全书总目》卷四五,北京:中华书局,1997年,第614页)。因此《索隐》注文与《史记》正文之间的文字差异,很有可能是因所据版本不同而造成的。

[12] 清人张文虎校刊金陵局本《史记·惠景间侯者年表》曰:“清都。毛(毛晋汲古阁刻十七史本——笔者按)作‘清郭’,与《索隐》本合。”(见《校刊史记集解索隐正义札记》卷二,北京:中华书局,1977年,第228页)又临淄出土齐国官署封泥见有“请郭邑丞”、“请郭乡印”(秦汉时期,“清”、“请”二字通用,如岳麓秦简书“清河郡”多作“请河郡”),益证“清都”为“清郭”讹误。

[13] 中华书局标点本《史记》所用底本为清金陵局本。

[14] 全祖望即认为今本《汉表》阳信侯条脱漏“新野”二字。见《汉书地理志稽疑》卷六,第2615页。

[15] 梁玉绳:《史记志疑》卷十二,第625页。

[16] 见《汉书地理志稽疑》卷六,第2617页。

[17] 王荣商:《汉书补注》,第1050页。

[18] 《汉书》卷一九《百官公卿表》曰:“(建元二年)南陵侯赵周为太常,四年免。”第767页。

[19] 《汉志》临淮郡无南陵,足证刘庆封国之小,此侯国武帝后元二年国除后,即省并不存。

[20] 周晓陆等:《于京新见秦封泥中的地理内容》,《西北大学学报(哲学社会科学版)》2005年第4期。

[21] 关于《秩律》南陵县地望,参见晏昌贵《张家山汉简释地六则》,《江汉考古》2005年第2期。