- Windows下Oracle安装图解
叫我老村长
Windows下Oracle安装图解----oracle-win-64-11g详细安装步骤一、Oracle下载官方下地址http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.htmlwin32位操作系统下载地址:http://download.oracle.com/otn/nt/oracle11g
- oracle Health Monitor
duncanboy
oracleHealthMonitororacle
AboutHealthMonitorBeginningwithRelease11g,OracleDatabaseincludesaframeworkcalledHealthMonitorforrunningdiagnosticchecksonthedatabase.AboutHealthMonitorChecksHealthMonitorchecks(alsoknownascheckers,hea
- oracle 分区表 变大,Oracle11G新特性:分区表分区默认segment大小64k变为8M
阳光下的少年
oracle分区表变大
Oracle11G新特性:分区表分区默认segment大小64k变为8M2017-02-08在oracle11.2创建分区表,每个分区默认大小为8M,是由_partition_large_extents参数控制,可以算是11.2.0.2开始的一个新特性,为了减少extent数量,提高分区表性能,而设置的一个参数,默认为true,即分区表的每个extent为8M,和oracle10g相比,会导致同样
- oracle 将表名和字段名变为大写
宇宙浪子
分享oracle数据库
当使用powerdesigner创建数据库时要注意大小写。注:以下脚本在oracle10g,11g上正确执行1.批量将表名变为大写beginforcin(selecttable_nametnfromuser_tableswheretable_nameupper(table_name))loopbeginforcin(selectcolumn_namecnfromuser_tab_columnswh
- sqlplus连接Oracle 11g 数据库
zone--
sqlplusoracle
sqlplus连接Oracle11g数据库安装如下Oracle11g安装教程//Anhighlightedblocksqlplus有几种登陆方式比如:sqlplus"/assysdba"--以操作系统权限认证的oraclesys管理员登陆sqlplus/nolog--不在cmd或者terminal当中暴露密码的登陆方式conn/assysdbaconnsys/passwordassysdbasql
- Oracle 数据泵导出表部分列的实现方案:从 12c 新特性到低版本兼容
zone--
oracle数据库
在Oracle数据库日常运维中,经常会遇到“只导出表中部分列”的需求——例如某张表包含数十个字段,但业务仅需迁移其中3-5个核心字段的数据。传统的导出工具(如exp或expdp)虽能通过QUERY参数过滤行记录,却无法实现列的筛选。本文基于实践经验,详解不同Oracle版本下导出表部分列的解决方案,包括12c及以上版本的便捷方法和11g及以下版本的兼容方案。12c及以上版本:利用VIEWS_AS_
- ASM 下 file全名
jnrjian
数据库oracle
HowtocollectthefullpathnameofthefilesinASMdiskgroupsSolutionSetyourORACLE_SIDtotheASMinstancename.ConnecttotheASMinstance:in10g:sqlplus/assysdbain11g:sqlplus/assysasmThenperformthefollowingquery:SELEC
- ORACLE 11g 使用ROWNUM完美解决ORA-00600 内部错误代码
有点智慧
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!1,ORA-00600:内部错误代码Oracle从11.2.0.1升级到11.2.0.4,开发人员报告说一个job运行失败,调试有报错信息,ORA-00600:内部错误代码,参数:[rwoirw:checkret
- oracle 11g drop user 失败,报错ORA-00600
有套Oracleoda一体机上,数据库版本是11204,删除用户时报错如下:SQL>dropusergs_jw3cascade;dropusergs_jw3cascade*ERRORatline1:ORA-00600:internalerrorcode,arguments:[16662],[kqldfau],[4],[0],[253890],[],[],[],[],[],[],[]使用rman备份
- 【Oracle】Oracle 11g打补丁时遇到opatch apply命令无法识别
瑞琪姐
大数据模块oracle数据库
⚙️1.使用完整路径执行命令问题原因:若未将$ORACLE_HOME/OPatch加入系统PATH环境变量,直接输入opatchapply会因系统无法定位命令而报错。解决方案:改用绝对路径执行:$ORACLE_HOME/OPatch/opatchapply例如:/u01/app/oracle/product/11.2.0/db_1/OPatch/opatchapply注:此方法在Windows/L
- 【Oracle】Oracle 11g 中扩展表空间
瑞琪姐
大数据模块oracle数据库
在Oracle11g中扩展表空间是常见的数据库管理任务,通常有以下几种核心方法,操作步骤如下:一、扩展表空间常用方法方法1:调整现有数据文件大小(RESIZE)适用于磁盘空间充足,且当前数据文件未达上限的情况。--查询当前数据文件路径和大小SELECTfile_name,bytes/1024/1024AScurrent_size_mbFROMdba_data_filesWHEREtablespac
- 通过数据库评估存储设备IO性能-Oracle11gIO校准功能介绍
diuluoshuai2303
数据库运维操作系统
通过数据库评估存储设备IO性能---------Oracle11gIO校准功能介绍前言I/O子系统是ORACLE数据库的一个重要组成部分,因为I/O操作是贯穿数据库管理全过程,它操作的对象包括日志、表、索引、数据字典、以及一些排序、undo操作等等,每个数据库读取或者写入磁盘上的数据,都会产生磁盘IO,可以这么说一个正常业务的数据库系统,80%的性能消耗都与IO有关,相对于网络、CPU、内存等其他
- 达梦数据库运维-DM8到ORACLE11g创建DBLINK
DM8到ORACLE11g创建DBLINK一、安装Oracle11g客户端安装配置1)解压安装客户端进入/dm/创建oracle客户端目录mkdir-p/dm8/oracleclient/chowndmdba.dinstall-R/dm8/oracleclient/cd/dm8/oracleclient/tar-xvfdbclt11204_x64_RHEL7U4_x64.tar.gz2)将orac
- 跨服务sqlplus连接oracle数据库
胡斌附体
数据库oracle19c11gsqlplus问题排查远端连接
背景:ogg程序同步数据。目标库:客户oracle数据库11.0.2.4.0,也就是11g的数据库。源库:业务组搭建的19c数据库,刚安装的oracle数据库。ogg在源库和目标库系统都部署好了并且也可以通信。在目标库系统使用sqlplus测试连接源库的数据库ogg用户。问题。连接出现问题。目前问题得到了解决。是因为访问不能够使用实例名去连接。而需要通过服务名连接。像下面这样是正确的。sqlplu
- 统信UOS安装Oracle 11g的客户端
u011189649
oracle数据库
统信UOS安装Oracle11g的客户端一个积分的下载地址https://download.csdn.net/download/u011189649/89791511解压客户端压缩文件到/db/#首先执行xhost+xhost+#上传linux.x64_11gR2_client.zip文件至/db/目录;#如果上传不了就在局域网搭个http服务,然后用wget下载#wgethttp://ip/li
- Oracle 数据库中将某个字段的值根据逗号(,)分隔符拆分成多行显示
洁辉
数据库oracle
要在Oracle数据库中将某个字段的值根据逗号(,)分隔符拆分成多行显示,可以使用递归查询或者一些字符串处理函数结合CONNECTBY子句来实现。下面是两种方法的具体实现步骤:方法一:使用CONNECTBY和REGEXP_SUBSTR这种方法适用于Oracle11g及以上版本,利用了Oracle的层次查询功能。假设有一个表my_table,其中包含一个字段my_column,该字段存储了逗号分隔的
- 将oracle表字段json字符串分解提取并返回单列表
skillfulit
oraclejson数据库
将oracle表字段json字符串分解提取并返回单列表oracle版本11gR2(11.2.0.4.0)原始表字段内容{"FRAME_INFO":["0,0,-1,1800,1800,5992,191,20","1,0,-1,2000,1800,5992,188,20","2,0,-1,1800,1800,5992,182,20","3,0,-1,1800,1800,5992,177,20","4
- oracle11G 监听服务正常,但连接数据库提示ORA-12541:无监听程序
最近使用Oracle11g数据库出现了一下比较郁闷的问题,在本地使用SQLPlus连接数据库没有任何问题,远程使用NavicatPremium无法连接,提示ORA-12541:无监听程序。本地使用SQLdevelop连接时也出现了连接失败的问题;关于这个连接异常找了很多资料,大致分为以下几种情况:1、查看监听器服务有没有正常运行,如果没有运行重新启动监听服务;2、host配置问题:oracle的l
- Oracle 11g的踩坑日记
纵配天
oracle数据库mysql
Oracle11g相对来说卸载起来比19好卸载多了。来自一个直接莽着下完19再下11g的憨憨怨念。单单就sql语句来说,感觉和mysql差别不是很大。然后是踩坑比较多的dblink,首先是要确保自己登录的账户有创建dblink的权限,publicdatabaselink的创建需要sys的授权。创建好的非public修饰的dblink只能由创建用户使用,可以先对自己当前的数据库进行查询dblink,
- Python与c++互相调用(pybind11)
欢迎下辈子光临
CPPPythonpythonc++开发语言
1.安装pybind11看网上使用pipinstallpybind11,没有弄明白,因此下载源码编译。1.1下载pybind11gitclonehttps://github.com/pybind/pybind11.git1.2源码编译cd/pybind11mkdirbuildcdbuildcmake..make编译完成2.cpp样例//example.cpp#include#include"Abs
- 智慧储能园区一体化管控平台 | 图扑数字孪生
在全球能源绿色低碳转型与“双碳”目标推动下,储能产业正迎来迅猛的爆发式增长。据预测数据显示,到2030年全球储能装机容量将攀升至411GW/1194GWh。中国作为全球新能源领域的重要力量,正积极构建“源网荷储”一体化的新型电力系统。在此背景下,储能园区作为电力系统灵活调节的关键,其安全高效运营成为行业发展的核心要素。在传统储能园区运维模式中,众多设备运行数据分散混乱,无法协同分析,导致异常情况的
- Oracle Data Guard之Snapshot Standby(快照备库)
学无止境的小一
oracle数据库
前言在日常工作中,有时会有一些需求,那就是需要用到生产环境的数据进行测试,如果按照常规方法,通过备份恢复到测试库进行测试的话,数据库体积越大恢复的速度越慢。在这种情况下我们可以使用SnapshotStandby(快照备库)来进行一些测试操作。SnapshotStandby的介绍Oracle11g中的DataGuard不仅引入了ActiveDataGuard实时查询特性,还提供了snapshotst
- Oracle数据库捕获造成死锁的SQL语句
GottdesKrieges
Oracle实践篇(三)数据库oraclesql
Oracle数据库捕获造成死锁的SQL语句通过系统视图通过alert日志和trace通过ASH或AWR报告构造一个简单的死锁场景。会话1修改ID=1的行:appuser1@ORA11G_0>updaterdr_npcsetage=33wherenpc_id=1;1rowupdated.--不提交,等待会话2修改ID=2的行会话2修改ID=2的行:
- 87-Oracle DBlink和透明网关的创建
远方1609
oracle数据库databasesql大数据
各位小伙伴,有没有业务侧要求除了生产使用的实例还有其他的oracle实例需要链接,还有其他的业务的MSSQLerver,PG等数据库的连接要求,需要配置LISTENER的配置和对应的脚本设置。此次安装现场要求给oracle11g和sqlserver2016进行透明网关链接,同时整理dblink创建留个记录。不过通过透明网关的查询注定了不同架构上的链接性能会有丢失,如果出现业务大查询到异端数据库的历
- oracle awr与ash性能报告深入解析,Oracle AWR 与 ASH 性能报告深入解析
飞鱼格格
oracleawr与ash性能报告深入解析
《OracleAWR与ASH性能报告深入解析》一数据库版本LEO1@LEO1>select*fromv$version;BANNER--------------------------------------------------------------------------------OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-64
- 【docker安装Oracle11g】
顶级小趴菜
docker容器oracle
docker安装Oracle11g目录docker安装Oracle11g1.拉取oracle_11g镜像:2.创建Oracle_11g容器:3.查看Oracle容器:4.重启Oracle容器:5.进入oracle11g容器进行配置:5.1切换到root用户下:5.2进入容器环境并修改环境变量:5.3创建软连接:5.4切换到oracle用户并登录sqlplus修改sys、system用户密码:5.5
- docker 安装oracle 11g
docker安装oracle11g拉取镜像dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g创建容器dockerrun-d-p1521:1521--nameoracle11gregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11gD:\docker\oracle\oracle1
- Docker 安装oracle11g 手把手详细教程
一、在线拉去镜像因为镜像比较大,所以请划水等拉去好命令:dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g查看拉去好的镜像:最新版本6.85GB[root@syf~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEdockertest1.07f4faa2061719monthsago7
- 【转】Oracle 监听SQLNET.EXPIRE_TIME
msdnchina
oracleexpire_time
https://blog.csdn.net/qq_34556414/article/details/81330604在这边数据库加固有如下一个加固项,使用SQLNET.EXPIRE_TIME可以来断开在session里面超时的状态为inactive的连接。检查是否设置超时时间注意事项及影响:作用:非活动会话超过10分钟,连接断开该项需要与业务侧确认是否可以操作对于11g(如果有grid)只加固OR
- Oracle goldengate参数:TRANLOGOPTIONS DBLOGREADER
MrZhou周
数据库运维案例分享oracle数据库DBLOGREADER
DBLOGREADERValidforExtractinclassiccapturemodeforOracle.CausesExtracttouseanewerAPIthatisavailableasofOracle11.2.0.2andlater11gR2versions.ThisAPIusesthedatabaseservertoaccesstheredoandarchivelogs.DBLO
- 解读Servlet原理篇二---GenericServlet与HttpServlet
周凡杨
javaHttpServlet源理GenericService源码
在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是exte
- MySQL性能优化
bijian1013
数据库mysql
性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间。性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等。本文介绍方法的主要有:
a.优化查询
b.优化数据库结构
- ThreadPool定时重试
dai_lm
javaThreadPoolthreadtimertimertask
项目需要当某事件触发时,执行http请求任务,失败时需要有重试机制,并根据失败次数的增加,重试间隔也相应增加,任务可能并发。
由于是耗时任务,首先考虑的就是用线程来实现,并且为了节约资源,因而选择线程池。
为了解决不定间隔的重试,选择Timer和TimerTask来完成
package threadpool;
public class ThreadPoolTest {
- Oracle 查看数据库的连接情况
周凡杨
sqloracle 连接
首先要说的是,不同版本数据库提供的系统表会有不同,你可以根据数据字典查看该版本数据库所提供的表。
select * from dict where table_name like '%SESSION%';
就可以查出一些表,然后根据这些表就可以获得会话信息
select sid,serial#,status,username,schemaname,osuser,terminal,ma
- 类的继承
朱辉辉33
java
类的继承可以提高代码的重用行,减少冗余代码;还能提高代码的扩展性。Java继承的关键字是extends
格式:public class 类名(子类)extends 类名(父类){ }
子类可以继承到父类所有的属性和普通方法,但不能继承构造方法。且子类可以直接使用父类的public和
protected属性,但要使用private属性仍需通过调用。
子类的方法可以重写,但必须和父类的返回值类
- android 悬浮窗特效
肆无忌惮_
android
最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:
一开始考虑用自定义View来做。后来发现开线程让其移动很卡,ListView+动画也没法精确定位到目标点。
后来想利用Dialog的dismiss动画来完成。
自定义一个Dialog后,在styl
- hadoop伪分布式搭建
林鹤霄
hadoop
要修改4个文件 1: vim hadoop-env.sh 第九行 2: vim core-site.xml <configuration> &n
- gdb调试命令
aigo
gdb
原文:http://blog.csdn.net/hanchaoman/article/details/5517362
一、GDB常用命令简介
r run 运行.程序还没有运行前使用 c cuntinue 
- Socket编程的HelloWorld实例
alleni123
socket
public class Client
{
public static void main(String[] args)
{
Client c=new Client();
c.receiveMessage();
}
public void receiveMessage(){
Socket s=null;
BufferedRea
- 线程同步和异步
百合不是茶
线程同步异步
多线程和同步 : 如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法
多线程和异步:多线程可以做不同的事情,涉及到线程通知
&
- JSP中文乱码分析
bijian1013
javajsp中文乱码
在JSP的开发过程中,经常出现中文乱码的问题。
首先了解一下Java中文问题的由来:
Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,
- js实现页面跳转重定向的几种方式
bijian1013
JavaScript重定向
js实现页面跳转重定向有如下几种方式:
一.window.location.href
<script language="javascript"type="text/javascript">
window.location.href="http://www.baidu.c
- 【Struts2三】Struts2 Action转发类型
bit1129
struts2
在【Struts2一】 Struts Hello World http://bit1129.iteye.com/blog/2109365中配置了一个简单的Action,配置如下
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configurat
- 【HBase十一】Java API操作HBase
bit1129
hbase
Admin类的主要方法注释:
1. 创建表
/**
* Creates a new table. Synchronous operation.
*
* @param desc table descriptor for table
* @throws IllegalArgumentException if the table name is res
- nginx gzip
ronin47
nginx gzip
Nginx GZip 压缩
Nginx GZip 模块文档详见:http://wiki.nginx.org/HttpGzipModule
常用配置片段如下:
gzip on; gzip_comp_level 2; # 压缩比例,比例越大,压缩时间越长。默认是1 gzip_types text/css text/javascript; # 哪些文件可以被压缩 gzip_disable &q
- java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交
bylijinnan
java
public class LinkListTest {
/**
* we deal with two main missions:
*
* A.
* 1.we create two joined-List(both have no loop)
* 2.whether list1 and list2 join
* 3.print the join
- Spring源码学习-JdbcTemplate batchUpdate批量操作
bylijinnan
javaspring
Spring JdbcTemplate的batch操作最后还是利用了JDBC提供的方法,Spring只是做了一下改造和封装
JDBC的batch操作:
String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";
- [JWFD开源工作流]大规模拓扑矩阵存储结构最新进展
comsci
工作流
生成和创建类已经完成,构造一个100万个元素的矩阵模型,存储空间只有11M大,请大家参考我在博客园上面的文档"构造下一代工作流存储结构的尝试",更加相信的设计和代码将陆续推出.........
竞争对手的能力也很强.......,我相信..你们一定能够先于我们推出大规模拓扑扫描和分析系统的....
- base64编码和url编码
cuityang
base64url
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
- web应用集群Session保持
dalan_123
session
关于使用 memcached 或redis 存储 session ,以及使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,不只是缓存 session,还可以做其他用途,一举几得啊。1、使用 filter 方法存储这种方法比较推荐,因为它的服务器使用范围比较多,不仅限于tomcat ,而且实现的原理比较简
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
dcj3sjt126com
数据库
public function getMinLimit () { $sql = "..."; $result = yii::app()->db->createCo
- solr StatsComponent(聚合统计)
eksliang
solr聚合查询solr stats
StatsComponent
转载请出自出处:http://eksliang.iteye.com/blog/2169134
http://eksliang.iteye.com/ 一、概述
Solr可以利用StatsComponent 实现数据库的聚合统计查询,也就是min、max、avg、count、sum的功能
二、参数
- 百度一道面试题
greemranqq
位运算百度面试寻找奇数算法bitmap 算法
那天看朋友提了一个百度面试的题目:怎么找出{1,1,2,3,3,4,4,4,5,5,5,5} 找出出现次数为奇数的数字.
我这里复制的是原话,当然顺序是不一定的,很多拿到题目第一反应就是用map,当然可以解决,但是效率不高。
还有人觉得应该用算法xxx,我是没想到用啥算法好...!
还有觉得应该先排序...
还有觉
- Spring之在开发中使用SpringJDBC
ihuning
spring
在实际开发中使用SpringJDBC有两种方式:
1. 在Dao中添加属性JdbcTemplate并用Spring注入;
JdbcTemplate类被设计成为线程安全的,所以可以在IOC 容器中声明它的单个实例,并将这个实例注入到所有的 DAO 实例中。JdbcTemplate也利用了Java 1.5 的特定(自动装箱,泛型,可变长度
- JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节
justjavac
json
2013年5月,Yehuda Katz 完成了JSON API(英文,中文) 技术规范的初稿。事情就发生在 RailsConf 之后,在那次会议上他和 Steve Klabnik 就 JSON 雏形的技术细节相聊甚欢。在沟通单一 Rails 服务器库—— ActiveModel::Serializers 和单一 JavaScript 客户端库——&
- 网站项目建设流程概述
macroli
工作
一.概念
网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。
二.需求分析
项目立项
我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。
客户的需求说明书
第一步是需
- AngularJs 三目运算 表达式判断
qiaolevip
每天进步一点点学习永无止境众观千象AngularJS
事件回顾:由于需要修改同一个模板,里面包含2个不同的内容,第一个里面使用的时间差和第二个里面名称不一样,其他过滤器,内容都大同小异。希望杜绝If这样比较傻的来判断if-show or not,继续追究其源码。
var b = "{{",
a = "}}";
this.startSymbol = function(a) {
- Spark算子:统计RDD分区中的元素及数量
superlxw1234
sparkspark算子Spark RDD分区元素
关键字:Spark算子、Spark RDD分区、Spark RDD分区元素数量
Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。
可以利用RDD的mapPartitionsWithInd
- Spring 3.2.x将于2016年12月31日停止支持
wiselyman
Spring 3
Spring 团队公布在2016年12月31日停止对Spring Framework 3.2.x(包含tomcat 6.x)的支持。在此之前spring团队将持续发布3.2.x的维护版本。
请大家及时准备及时升级到Spring
- fis纯前端解决方案fis-pure
zccst
JavaScript
作者:zccst
FIS通过插件扩展可以完美的支持模块化的前端开发方案,我们通过FIS的二次封装能力,封装了一个功能完备的纯前端模块化方案pure。
1,fis-pure的安装
$ fis install -g fis-pure
$ pure -v
0.1.4
2,下载demo到本地
git clone https://github.com/hefangshi/f