来源: Oracle中如何获取系统当前时间 – CSDN博客
转自:http://www.2cto.com/database/201304/202675.html
来源: Oracle中如何获取系统当前时间 – CSDN博客
转自:http://www.2cto.com/database/201304/202675.html
出于兴趣而不是市场需求去解决一个问题,这是失败的第一大原因。
来源: 创业者必读:创业失败有20个主要原因,你自我检查了吗?_36氪
编者按:CB Insights曾经对101家失败的创业公司进行分析,找到20个主要败因。现在它又举出案例,对20个败因进行分析。让我们来学习一下。
我们分析了101家走向失败的创业公司,从中总结出20个主要败因,有的因为产品市场不匹配而失败,有的因为团队糟糕而失败。
当我们汇总失败创业公司的名单时,有许多人提出请求,希望我们能分析一下。
创业公司、企业、投资人、经济发展相关人士、学者、记者都想深入了解一个问题:
创业公司因为什么原因失败?
CB Insights对数据进行处理,看看能否找到答案。

查看101家公司的“死亡报告”之后,我们发现很少有企业因为一个原因失败。尽管如此,从这些失败故事中我们还是可以找到一些模式的:
整理之后,我们列出20个导致创业公司失败的最大原因。
因为有许多创业公司因为多种多样原因失败,你会发现,将表格中20个原因的比例加起来,数字远超100%。
在图表下面,我们会对每一个原因进行解释,列出相关案例供您参考。
请注意,如果没有大量创始人分享自己的失败故事,我们不可能有数据来分析。感谢他们。
第20位:未能及时调整方向
在“死亡报告”中,因为出现坏产品、招人失败或者决策失误,企业没有摆脱影响,或者摆脱的速度不够快,结果走向死亡,这个原因占了7%。糟糕的创意会消耗资源和金钱,业务迟迟没有进展,员工会感到沮丧。

Keith Nowak在分析Imercive的“死亡报告”中说:“我们陷入‘mid-pivot’无法自拔:也就是说有一个战略我们知道不管用,还有一个战略我们相信会成功,但是我们陷入二者之间,不能积极推行新战略。此时处境很尴尬,无论从专业角度还是从个人角度看,都相当困难。因为未能追求新战略,我们感到极为沮丧,没有有意义的进步意味着我的第一家公司每一天都在朝着失败靠近。我们曾经竭尽全力,想度过这一困难期,可惜还是没有做到。”
第19位:筋疲力尽

保持“工作-生活“的平衡相当重要,许多创业公司创始人没有做到,于是筋疲力尽的概率就会很高。在失败报告中,有8%的案例将疲累作为原因。当你发现企业走进死胡同时,必须在必要的地方减少损失,重新定向,这点很重要;拥有一个强大的团队(有凝聚力、多样化、积极进取的团队)同样重要,大家可以分担责任,提高成功的概率,这两点都不能忽视。
第18位:没有利用好人脉网络
我们经常听到创业公司企业家抱怨说,他们没有强大的人脉网络,与投资人关系不好;在失败案例中,我们听到一个让人惊讶的原因:企业家说他们未能利用好自己的网络。

Kiko是这样说的:“让你的投资人参与进来。投资人是来帮你的,让他们从一开始就参与,多向他们寻求帮忙,不要害怕。我想我们在早期犯了错,一切都亲力亲为,可能是因为刚刚进入商业世界,没有安全感吧。这是一个错误。”
第17位:法务挑战
有时,一家创业公司从简单的创意起步,渐渐卷入复杂的法务世界,结果这种复杂性成为企业的主要死因。
Decide.com对自己的失败是这样剖析的:

“我们收到它们的一份通知,说我们不合规,除非我们解决,否则就会封禁我们的附属帐号。我们并没有赚到多少钱,不过这个帐号占了我们营收的80%以上。”
对一些失败音乐创业公司进行分析会发现,与唱片公司打交道、处理法律事务成本很高,它成为创业公司失败的一个主要原因。
曾经红极一时的创业公司Turntable.fm是这样说的:
“有许多音乐创业公司失败,我未能汲取教训。有代价昂贵的风险要你去冒,与你打交道的行业相当棘手。我们的现金超过四分之一用来支付律师费、版费以及与音乐支持有关的服务费。我们不得不放慢增长速度,因为我们无法在进入国际市场。”
第16位:没有投资者感兴趣

许多创业公司创始人说,在种子阶段之后(Series A)投资人没兴趣继续投资,或者根本没有兴趣,这是公司失败的主要原因,而投资人没兴趣往往又与缺少现金这个原因息息相关。
第15位:地理位置安排不当
位置是一个重要问题,而问题的形式又是多种多样的。例如,创业公司的概念与位置是否一致就很重要。

听听Meetro的说法:
“我们推出产品,让所有的芝加哥朋友都来买。当时地区最大的报纸刊文详细报道我们,一切看起来很好……很快我们就发现,虽然我们在芝加哥有几百名活跃用户,但它并不意味着我们可以在Milwaukee轻松获得2名活跃用户,而Milwaukee离芝加哥只有一百英里远,更不必说纽约或者旧金山了。软件和概念没有那么简单就能跨越物理边界。”
对于远程团队来说,位置往往是失败的一个重要原因。如果你的团队远程办公,你必须找到有效的沟通手段,否则团队工作就会缺少协作、缺少规划,最终成为失败的诱因。
正如Devver所说的:
“远程团队有一个最明显的缺点:管理混乱。即使只是小团队,在一个州管理好工资单、失业、保险等事务,也是一件头痛的事,很烦,很让人分心。”
第14位:缺少激情
世界上从不缺少好创意,但是在创业“死亡报告”中,有9%提到一个原因:对某个领域缺少激情,或者缺少某个领域的知识,这才是失败的关键原因,而不是因为你没有好创意。

在报告中,NewsTilt坦白承认说他们对自己挑选的领域缺少激情,NewsTilt是这样说的:
“公正地说,我们对于新闻行业缺少真正的兴趣。我最开始时之所以开发评论产品,只是因为我想为自己的博客找一个完美的评论系统。后来我开始设计出色的评论系统,而系统的理想客户是报纸。”
“不过我们对新闻行业并不感兴趣,我们甚至都不是热情的新闻读者。如果每天我做的第一件事是访问news.bbc.co.uk,我们就应该开发这样的产品。即使我们开发了NewsTilt,它也不是我必去的地方,我必去的地方是Hacker News和Reddit。如果我们对一件事情感兴趣纯粹只是出于商业原因,又怎么能开发好产品呢?”
第13位:转型失利
Burbn变成了Instagram,ThePoint变成了Groupon,如果能像它们一样成功就好了,否则你会走上不归路。

Flowtab对于自己的失败是这样解释的:“为了转型而转型是没有意义的。必须好好规划,知道要对商业模式做怎样的调整,对假设进行测试,对结果进行评估。否则你什么东西也学不到。”
第12位:团队与投资人不和
在创业公司失败报告中,联合创始人内讧是一个致命原因。不过不和并不限于创始团队,如果与投资人闹翻了,失败很快就会降临,ArsDigital就是一个好例子。
Phillip Greenspun是这样说的:

“在大约一年的时间里,Peter Bloom (General Atlantic,泛大西洋资本集团)、Chip Hazard (Greylock,创投公司格雷洛克)和Allen Shaheen (CEO)对ArsDigita行使绝对权力。在这一年里,他们做了如下一些事:
——花了2000万美元让公司营收回到我当CEO时的水平。
——微软2000年夏天开价收购公司,ArsDigita有机会成为第一大a .NET企业软件公司,他们拒绝了。
——在新产品(ACS 4.x)完成之前废弃完整的老产品(ACS 3.4)。
——成本架构极高:我当时主管公司时只有80人,大部分人的基本薪酬不到10万美元,年营收达到2000万美元。Greylock、General Atlantic和Allen掌管的ArsDigita却有近200名员工,设了许多新管理职位,年薪达到20万美元甚至更高。
——市场领导力(market leadership)和思想领导力( thought leadership)下降。
第11位:偏离中心
在失败故事中,有13%了分心问题:被无关紧要的项目、个人事物或者(和)综合性的焦点偏离所困扰。
MyFavorites在失败之后分析说:

“当我们从SXSW回来后,我们全都开始失去兴趣,团队全都想知道公司最终走向何处,我自己也在想我是不是真的想运营一家创业公司,是不是想引入投资者,是不是想承担员工责任,应付投资者。”
第10位:产品时机不对
如果产品发布过早,用户可能会说它不够好,到时再想让用户回来就很难了,因为你给他们的第一印象不好。如果你发布产品太迟,就会错过市场机会。
Calxeda的员工是这样说的:

“以Calxeda为例,我们前进的速度太快,客户追不上。我们提供的技术不是他们想要的,例如,我们用的是32位,他们却要64位。当操作系统生态环境还在充实时,我们已经行动了:现在Canonical(Ubuntu Linux的开发商)发展很好,红帽呢,去哪里了?我们进入太早了。”
第9位:忽视客户
忽视用户往往会导致失败。视野狭窄,没有收集用户反馈意见,这是许多创业公司失败的主要原因。
例如eCrowds就是这样失败的,它是一家内容管理系统公司。

eCrowds剖析说:
“我们花了太多时间完善自我,却没有收集前景反馈意见,这样很容易导致视野狭窄。我建议大家从一开始就要收集前景反馈意见,不要等上2个月或者3个月,意见必须客观。”
VoterTide也是这样说的:
“我们没有花足够的时间与客户对话,我们埋头推出自己认为好的功能,但是没有从客户那里收集充分的意见,意识到时已经晚了。你很容易就会陷进去,认为自己的东西很酷。你必须留意自己的客户,根据他们的需求调整。”
第8位:营销不到位
知道你的目标客户在哪里,知道如何引起他们的注意,将它们转化为领导客户和终极客户,这是走向成功的关键。营销不利是企业失败的主要原因之一,许多创始人只喜欢编写代码,开发产品,不会推广产品。

听听Overto的说法:
“用户数量决定互联网服务的生与死。在最初的日子,数字增长是系统性的。然后触及天花板,此时做事就会轻松很多,是时候做一些营销了。很遗憾,我们之中没有谁擅长营销。更糟糕的是,没有谁有足够的时间来弥补缺失。如果当时我们动手解决上面所说的问题时,缺少相应人才可能是另一个障碍。”
第7位:有产品没有商业模式
商业模式很重要,失败的创业者似乎都表示认同,他们执著于单一渠道,或者找不到大规模赚钱的方法,最终让投资者犹豫不定,创始人无法利用好形势。

Tutorspree是这样说的:
“虽然Tutorspree取得许多成功,但是我们未能打造一项成规模的业务……Tutorspree之所以不能形成规模,主要是因为我们依赖单一渠道,渠道的变化会给公司带来动荡。从一开始,我们就将SEO放入模式,当我们渐渐壮大,它变得越来越重要。在发展早期,在Y Combinator阶段,我们没有钱收购。SEO是免费的,我们专注SEO,而且很擅长。”
第6位:产品对用户不友好
用户想要什么?需要什么?如果你忽视,不论是有意还是无意,都是一件糟糕的事。

听听GameLayers是怎么说自己的产品UI的:
“最终我相信PMOG缺少核心游戏冲动,无法让大众热爱。我们‘留下一些好玩的网页注解’,这个概念让玩家们感到困惑。回看过去,我相信我们应该好好清除障碍,收起骄傲,开发一些容易上手又好玩的东西,让用户从一开始时就能轻松玩。”
第5位:价格/成本问题
对于创业公司来说,定价是一种“黑暗艺术”,分析创业公司死亡报告 ,会发现定价是一件很难的事,价格必须高到可以收回成本,又必须低到可以吸引客户。

Delight IO认为定价很难。注册使用Delight.io的开发者可免费获得50次用户使用情况的视频录制,之后就需付费了,50美元20次视频录制,100美元50次视频录制。后来改变规则。听听它是怎样说的:
“我们最贵的月套餐是300美元。客户从没有抱怨过价格,我们只是没有达到他们的预期。最开始时,我们根据记录积分的数量定价。因为客户无法控制记录的长度,所以使用积分时会很谨慎。后来我们根据录制的累计持续时间来计费,这样就好多了,订阅者也多了起来。”
第4位:被淘汰出局
许多人说创业公司不应该关注竞争,现实却告诉我们,一旦某个概念热起来,在市场上得到验证,就会有许多复制者跑出来。过度关注竞争是不健康的,但是忽视竞争也是失败的诱因,19%的失败创业公司都将它列出来。

Wesabe的Mark Hedland曾经谈到自己的失败:
“Wesabe收集的数据更糟糕,工作量大得多,相比而言,Mint的体验好很多,良好的体验来自于快得多的速度。不要依赖单一源,要尊重用户隐私,真正在财务方面帮助用户,这些都很重要,也是我们应该追求的。不过如果产品很难使用,一切都是白搭。”
第3位:团队不行
企业如果想成功,组建多样化团队,拥有多种多样的技能,这点很重要。分析“死亡报告”,经常听到有人说:“真希望从一开始就能有一名CTO。”或者说创业公司“应该有一位热爱业务各方面的创始人。”。

Standout Jobs在”死亡报告”中是这样解释的:
“创始团队不可能自己创造一名MVP,这样做是错的。如果创始团队不能自己开发出产品(或者从自由职业者那里获得一定的帮助),那就不应该成立公司。我们应该引入联合创始人,主要用股票补偿他们,不是现金,可惜我们没有这样做。”
在某些案例中,创始团队希望他们能有更多的制衡。Nouncer的创始人是这样说的:“我们没有一位可以制衡我的合伙人,他可以对业务和技术决策的合理性进行检查。”
第2位:缺少现金
资金与时间是有限的,必须合理分配。如何花钱是一个难题,有29%的企业因此死亡。

以Flud团队为例,现金耗光往往与其它原因有关,比如没有找到与市场匹配的产品,没有正确转型。
“事实上,最终杀死Flud的原因在于公司无法融入更多资金。虽然我们想尽办法,试图化解深奥难懂的‘产品市场匹配’问题,可惜Flud还是耗光了现金,运营持续不下去了。”
第1位:市场不需要
出于兴趣而不是市场需求去解决一个问题,这是失败的第一大原因,在所说案例中有42%提到了。

Patient Communicator是这样说的:
“我意识到,我们之所以没有客户,是因为没有人对我们所说的模式感兴趣。医生需要的是更多病人,不是高效办公室。”
Treehouse Logic对此有着更深的阐述:
当创业公司没有解决市场需要解决的问题时,就会失败。我们解决的问题不够大,没有用一套伸缩的解决方案解决大问题。我们的确有很好的技术,有不错的购物行为数据,还有很好的声誉,相当于领袖、专家与顾问,但是我们缺少一样东西:没有一套技术或者商业模式以可伸缩的方式解决难题。
编译组出品。
来源: navicat premium 11.1.13 注册码 破解补丁全产品注册机下载_资源分享_房贷计算器(fangdaijisuanqi)
Navicat 11.1全产品注册机下载,支持Navicat 11全部软件,亲测可用。完美支持Navicat11破解,支持的软件如下:Navicat Premium、Navicat for MySQL、Navicat for MariaDB、Navicat for SQL Server、Navicat for oracle、Navicat for SQLite、Navicat for PostgreSQL、Navicat Data Modeler、Navicat Report Viewer、Navicat Essentials。 Navicat 11.1注册机使用教程: 直接运行,然后提示”Patch successfully”就代表破解成功了! PatchNavicat.rar
来源: 腾讯X5浏览器内核接入 – m0_37987029的博客 – CSDN博客
内核接入,需要先下载SDK:
官方接入文档:http://x5.tencent.com/tbs/guide/sdkInit.html
这个文档写的相对是很全的了,其实基本上参考这个就可以了。可以完善的地方就是,少了开发者后台的介绍,另外还有一些内容是目前不需要的, 如视频接入及TBSDemo的介绍
下面以实际开发应用为主线,介绍下X5接入
一、注册开发者后台,并写入项目配置文件
腾讯浏览服务官网http://x5.tencent.com/ 进入开发者后台,添加一个应用,输入应用名和包名,保存后即可看到生成的AppKey。
关于应用名和包名,其实也没有绝对限制死,用父目录包名也是可行的。
在AndroidManifest.xml文件中,在Application标签中加入下面的内容:
<meta-data android:name="QBSDKAppKey" android:value="b09eElbqkGvswnLlToeCKGvM" />
name必须是 “QBSDKAppKey”,value即为开发者后台生成的AppKey
二、下载SDK,并引入到Android项目中
下载地址:http://x5.tencent.com/tbs/sdk.html
看到新出了Android Studio版本的sdk,真是一把鼻涕一把泪,想当时为了解决Android Studio中so文件冲突的问题,花了不少时间
引入如下图
三、添加权限
其实X5并不需要什么特殊的权限,所有的权限都是原项目本身就需要的
在AndroidManifest.xml文件中加入下面几个权限
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” />
<uses-permission android:name=”android.permission.ACCESS_WIFI_STATE” />
<uses-permission android:name=”android.permission.INTERNET” />
<uses-permission android:name=”android.permission.READ_PHONE_STATE” />
四、引入X5 WebView编码
1、在layout中编码
次要属性请忽略
<com.tencent.smtt.sdk.WebView android:id="@+id/mainWebview" android:layout_width="match_parent" android:layout_height="match_parent" android:overScrollMode="never" android:scrollbars="none" android:textColor="#373636" android:textSize="14sp"> </com.tencent.smtt.sdk.WebView>
2、Activity引入
其实就是正常的创建一个webview,只不过使用的是X5的WebView,其中有很多非核心代码,如设置标题,缓存设置等,可不关注。
import com.tencent.smtt.export.external.interfaces.GeolocationPermissionsCallback; import com.tencent.smtt.export.external.interfaces.SslError; import com.tencent.smtt.export.external.interfaces.SslErrorHandler; import com.tencent.smtt.sdk.WebChromeClient; import com.tencent.smtt.sdk.WebSettings; import com.tencent.smtt.sdk.WebView; import com.tencent.smtt.sdk.WebViewClient;
mWebView = (WebView) findViewById(R.id.mainWebview);
WebSettings settings = mWebView.getSettings();
settings.setLoadWithOverviewMode(true);
settings.setBuiltInZoomControls(true);
settings.setJavaScriptEnabled(true);
settings.setUseWideViewPort(true);
settings.setSupportZoom(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
settings.setGeolocationEnabled(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
settings.setGeolocationDatabasePath(cacheDirPath);
//设置数据库缓存路径
settings.setDatabasePath(cacheDirPath);
//设置 Application Caches 缓存目录
settings.setAppCachePath(cacheDirPath);
//开启 Application Caches 功能
settings.setAppCacheEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
ToastManager.showWarn(“网络请求超时”);
view.stopLoading();
}
@Override
public void onReceivedSslError(WebView webView, SslErrorHandler sslErrorHandler, SslError sslError) {
//super.onReceivedSslError(webView, sslErrorHandler, sslError);
sslErrorHandler.proceed();
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
super.doUpdateVisitedHistory(view, url, isReload);
if (needClearHistory) {
needClearHistory = false;
mWebView.clearHistory();//清除历史记录
}
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
TopTitleManager.showTitle(XHZWebActivity.this, title);
}
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissionsCallback callback) {
callback.invoke(origin, true, false);
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
});
mWebView.loadUrl(url);
五、测试X5引入情况
如图 双水滴样式。
X5内核是可以共享使用的,由于微信、QQ、腾讯视频等腾讯系产品都使用了X5内核,所以一般情况下你手机上已经有了X5内核可以直接使用。
如果真没有,首次进入APP时,请求到腾讯浏览服务时,会执行内核下载操作(后台执行,量小,用户感知不到),退出当前请求,再次请求腾讯浏览服务(加载Webview)就可以生效了。

至此,如果还是觉得有疑问,可小窗,我保证不。。你
来源: Golang连接Oracle数据库 – 蝈蝈俊 – 博客园
Golang连接Oracle的库有很多,比较常见的如下:
不过,oralce 只提供了 oci8 的接口,必须通过它来调用,所以下面方案都逃不过相关设置。
地址: https://code.google.com/p/go-db-oracle/
官方介绍:
Oracle Driver using cgo to call OCI libraries from Oracle Instant Client 11. Developed with Linux Status initial: connects, authenticates, basic SELECTs, missing error control, not deallocating memory
关键点:
地址:https://github.com/wendal/go-oci8
它是 https://github.com/mattn/go-oci8 的分支, 增加了windows下中文的安装说明及相关文件
安装步骤,注意它的安装方式跟之前方式不一样了:之前是 http://wendal.net/459.html 这里提供的步骤, 跟github上安装步骤不一样。以github的为准。
安装方式请看下面这篇文章:
https://github.com/wohugb/git-reference/blob/master/Getting-Started/Installing-Git.rst
比如我安装的是 Git-1.8.4-preview20130916 这个 版本。
存放于C:\instantclient_12_1
OCI是指ORACLE调用接口(Oracle Call Interface),它提供了一组可对ORACLE数据库进行存取的接口子例程(函数),通过在代程序设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目的。
OCI是集成在 Oracle Database Instant Client 的Basic 版本中的。下载地址如下:
http://www.oracle.com/technetwork/database/features/instant-client/index.html
注意,后面你装的MinGW是64位版本,就需要OCI也是64位版本, 如果MinGW是32位版本,则需要OCI是32位版本。
存放于C:\instantclient_11_2\sdk
下载地址仍然是上面地址。
注意,后面你装的MinGW是64位版本,就需要OCI也是64位版本, 如果MinGW是32位版本,则需要OCI是32位版本。
下载地址:http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/ 下载后安装在C:\mingw。
MinGW全称Minimalist GNU For Windows,是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。MinGW提供了一套完整的开源编译工具集,以适合Windows平台应用开发,且不依赖任何第三方C运行时库。(http://www.mingw.org/wiki/Getting_Started)
参考:http://www.cnblogs.com/ghj1976/p/3175591.html
如果你安装的是MinGW 64 位版本,请参看下面这篇文章:
http://www.cnblogs.com/ghj1976/p/3540257.html
如果 MinGW是64位, oci 是32 会,编译时会报错:
ld.exe: skipping incompatible C:/instantclient_12_1/oci.dll when searching for -loci
(已经存放在windows文件夹下,)
将pkg-config.exe复制到C:\mingw\bin\下
将oci8.pc复制到C:\mingw\lib\pkg-config\下
注意,oci8.pc 需要根据你下载的 oci进行修改。下面是我根据我下载的oci版本做的修改。
# Package Information for pkg-config
prefix=C:/instantclient_12_1
exec_prefix=C:/instantclient_12_1
libdir=${exec_prefix}
includedir=${prefix}/sdk/include/
Name: OCI
Description: Oracle database engine
Version: 12.1
Libs: -L${libdir} -loci
Libs.private:
Cflags: -I${includedir}
添加
PATH=原有PATH;C:\instantclient_12_1;C:\MinGW\bin;
PKG_CONFIG_PATH=C:\MinGW\lib\pkg-config
执行 go get github.com/wendal/go-oci8
cd %GOPATH%/src/github.com/wendal/go-oci8/example
go run oracle.go
在一个目录下新建一个 tnsnames.ora 文件,用于配置连接字符串别名。
这个文件内容类似如下,参考 http://hi.baidu.com/sunxden/item/f5e1423a9bfc298df4e4ad4b:
ORA10 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora10)
)
)
比如我是把这个文件放在 C:\instantclient_12_1\tns 目录下了。
修改全局配置文件,增加一个 TNS_ADMIN 设置 ,指向这个目录。
set TNS_ADMIN=C:\instantclient_12_1\tns
这杨我们连接字符串就可以写成 用户名/密码@实例名
这个包网上看到下面一些问题:
https://groups.google.com/forum/#!topic/golang-china/4OmCsvqRcKA
https://github.com/hlife/goci 它是修改自 https://github.com/egravert/goci
作者提供的编译注意事项:
在相关程序中我加了 cgo 编译时需加的头文件和连接库
#cgo CFLAGS: -I/home/oracle/app/oracle/product/11.2.0/client_1/rdbms/public
#cgo LDFLAGS: -lclntsh -L/home/oracle/app/oracle/product/11.2.0/client_1/lib
您在使用时,请将 /home/oracle/app/oracle/product/11.2.0/client_1 修改为你的
系统中 $ORACLE_HOME 的字串值
如果你使用简易的安装包,请在
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
下载:
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
并安装和设置oracle环境变量。
同时需设置
export TNS_ADMIN=/home/oracle/app/oracle/product/11.2.0/client_1/network/admin
### ORACLE_HOME 以您系统实际情况进行修改。
参看资料:
golang 和 oracle 数据库编程类库介绍
http://bbs.mygolang.com/thread-202-1-1.html
golang 在 redhat linux 下如何连接 oracle?
http://www.oschina.net/question/110132_91394
微博上一些相关讨论
http://s.weibo.com/weibo/golang%2520oracle&b=1&page=1
来源: golang程序在windows上,注册为服务 – CSDN博客
package main
import (
“log”
“net/http”
“os”
“github.com/jander/golog/logger”
“github.com/kardianos/service”
)
type program struct{}
func (p *program) Start(s service.Service) error {
go p.run()
return nil
}
func (p *program) run() {
// 代码写在这儿
}
func (p *program) Stop(s service.Service) error {
return nil
}
/**
* MAIN函数,程序入口
*/
func main() {
svcConfig := &service.Config{
Name: “”, //服务显示名称
DisplayName: “”, //服务名称
Description: “”, //服务描述
}
prg := &program{}
s, err := service.New(prg, svcConfig)
if err != nil {
logger.Fatal(err)
}
if err != nil {
logger.Fatal(err)
}
if len(os.Args) > 1 {
if os.Args[1] == “install” {
s.Install()
logger.Println(“服务安装成功”)
return
}
if os.Args[1] == “remove” {
s.Uninstall()
logger.Println(“服务卸载成功”)
return
}
}
err = s.Run()
if err != nil {
logger.Error(err)
}
}
注册服务步骤
1. 运行demo/main.go 得到demo.exe文件
2. 打开cmd 切换到Demo项目目录
3. 运行输入 demo.exe install 注册服务成功
4. 注册服务成功
来源: 【已解决】go语言用go get去安装第三方包出错:exec: “hg”: executable file not found in %PATH% – 在路上
【问题】
折腾:
期间,去用:
|
1
|
go get code.google.com/p/log4go |
结果出错:
|
1
2
3
|
E:\Dev_Root\go\src\EmulateLoginBaidu>go get code.google.com/p/log4gogo: missing Mercurial command. See http://golang.org/s/gogetcmdpackage code.google.com/p/log4go: exec: "hg": executable file not found in %PATH% |
如图:
即:
| exec: “hg”: executable file not found in %PATH% |
【解决过程】
1.很明显,是在windows的cmd中,找不到hg。
而对于hg,如果是cygwin等环境,那肯定没问题,但是此处是cmd,所以没法用hg。
2.参考:
也是让去安装hg。
3.所以就需要去另外在windows中安装hg:
4.安装完毕,就可以继续去试试了:
|
1
2
3
|
E:\Dev_Root\go\src\EmulateLoginBaidu>go get code.google.com/p/log4goE:\Dev_Root\go\src\EmulateLoginBaidu> |
结果就是:
没有消息,就是最好的消息
即:安装成功了,无任何错误信息。
5.那就去确认一下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
E:\Dev_Root\go\src\EmulateLoginBaidu>go get code.google.com/p/log4goE:\Dev_Root\go\src\EmulateLoginBaidu>lsEmulateLoginBaidu.go EmulateLoginBaidu.go.bak EmulateLoginBaidu.log EmulateLoginBaidu.log.bakE:\Dev_Root\go\src\EmulateLoginBaidu>ls ../../srcEmulateLoginBaidu EmulateLoginBaidu_2013-09-18_office_tryHandleCookie.7z code.google.com common_func_test helloE:\Dev_Root\go\src\EmulateLoginBaidu>cdE:\Dev_Root\go\src\EmulateLoginBaiduE:\Dev_Root\go\src\EmulateLoginBaidu>lsEmulateLoginBaidu.go EmulateLoginBaidu.go.bak EmulateLoginBaidu.log EmulateLoginBaidu.log.bakE:\Dev_Root\go\src\EmulateLoginBaidu>cd ..E:\Dev_Root\go\src>lsEmulateLoginBaidu EmulateLoginBaidu_2013-09-18_office_tryHandleCookie.7z code.google.com common_func_test helloE:\Dev_Root\go\src>cd code.google.comE:\Dev_Root\go\src\code.google.com>lspE:\Dev_Root\go\src\code.google.com>cd pE:\Dev_Root\go\src\code.google.com\p>lslog4goE:\Dev_Root\go\src\code.google.com\p>cd log4goE:\Dev_Root\go\src\code.google.com\p\log4go>lsLICENSE README config.go examples filelog.go log4go.go log4go_test.go pattlog.go socklog.go termlog.go wrapper.goE:\Dev_Root\go\src\code.google.com\p\log4go>ls -lhatotal 94Kdrwx------+ 1 Administrators None 0 Sep 20 17:05 .drwx------+ 1 Administrators None 0 Sep 20 17:04 ..drwx------+ 1 Administrators None 0 Sep 20 17:05 .hg-rwx------+ 1 Administrators None 248 Sep 20 17:05 .hgtags-rwx------+ 1 Administrators None 1.3K Sep 20 17:05 LICENSE-rwx------+ 1 Administrators None 274 Sep 20 17:05 README-rwx------+ 1 Administrators None 7.7K Sep 20 17:05 config.godrwx------+ 1 Administrators None 0 Sep 20 17:05 examples-rwx------+ 1 Administrators None 6.3K Sep 20 17:05 filelog.go-rwx------+ 1 Administrators None 14K Sep 20 17:05 log4go.go-rwx------+ 1 Administrators None 17K Sep 20 17:05 log4go_test.go-rwx------+ 1 Administrators None 3.1K Sep 20 17:05 pattlog.go-rwx------+ 1 Administrators None 1.1K Sep 20 17:05 socklog.go-rwx------+ 1 Administrators None 1.2K Sep 20 17:05 termlog.go-rwx------+ 1 Administrators None 8.3K Sep 20 17:05 wrapper.goE:\Dev_Root\go\src\code.google.com\p\log4go>cd ../../bin系统找不到指定的路径。E:\Dev_Root\go\src\code.google.com\p\log4go>cd ..E:\Dev_Root\go\src\code.google.com\p>cd ../E:\Dev_Root\go\src\code.google.com>cd ..E:\Dev_Root\go\src>cd ../binE:\Dev_Root\go\bin>lsE:\Dev_Root\go\bin>cd ..E:\Dev_Root\go>cd pkgE:\Dev_Root\go\pkg>lswindows_amd64E:\Dev_Root\go\pkg>cd windows_amd64E:\Dev_Root\go\pkg\windows_amd64>lscode.google.comE:\Dev_Root\go\pkg\windows_amd64>cd code.google.comE:\Dev_Root\go\pkg\windows_amd64\code.google.com>lspE:\Dev_Root\go\pkg\windows_amd64\code.google.com>cd pE:\Dev_Root\go\pkg\windows_amd64\code.google.com\p>lslog4go.aE:\Dev_Root\go\pkg\windows_amd64\code.google.com\p>ls -lhatotal 448Kdrwx------+ 1 Administrators None 0 Sep 20 17:05 .drwx------+ 1 Administrators None 0 Sep 20 17:05 ..-rwx------+ 1 Administrators None 448K Sep 20 17:05 log4go.aE:\Dev_Root\go\pkg\windows_amd64\code.google.com\p> |
的确是在pkg下有log4go.a的
在src下,是有对应目录结构的:
【总结】
此处通过go get安装包,出现:
| exec: “hg”: executable file not found in %PATH% |
的错误,
原因是:
windows下没有安装Mercurial的hg(类似于cvs,svn,git的版本管理工具)
解决办法是:
去hg官网主页下载和安装即可:
来源: 我第1个可用的golang小程序 – Go语言中文网 – Golang中文社区
另外可能有人会说使用windows时间同步功能就行了,没必要麻烦。这里我的主要目的是突然兴趣所使想用golang练手,其次是windows自带的时间同步功能可能由于墙的原因不好使,反正我手动同步都没有成功过,如图:

在编写代码时,明明知道在golang中,大小写分别表示public和private,但在定义Timezone结构体,里面的变量使用小写,导致总是取不到正确的数据,折腾了不少时间。另外为了ISO-8859-1编码花了点时间找资料。
nssm install MyService d:\MyService.exe
(where d:\MyService.exe is the full path to the exe file).
我当时就写了2个批处理程序CreateService.bat:
nssm install SyncSystemTimeService %CD%\SyncSystemTim.exe
DeleteService.bat:
sc delete SyncSystemTimeService
windows服务注册成功了,启动SyncSystemTimeService服务后,我的程序好像并没有生效,我怀疑要么必须使用完整的路径(不能用%CD%变量), 要么可能使用%~dp0而不是%CD%(参考资料:http://stackoverflow.com/questions/16255184/how-do-i-find-the-current-directory-of-a-batch-file-and-then-use-it-for-the-pat),后来我没有继续查原因,在网上找到了使用golang写的一个服务程序:http://bitbucket.org/kardianos/service, 把代码拉下来,调整一下就达到我想要的要求。
来源: windows下搭建GO开发环境 – chinesern – 博客园
1. Go下载
由于某些原因golang.org不能访问,可以使用下面的镜像地址进行下
http://fossies.org/windows/misc/
我的环境是win8 64位,所以选择go1.7.5.windows-amd64.msi 进行下载
2. Install
安装在 d:/go 目录下
新建一个名为GOROOT的环境变量(注意大小写)


4. 在系统的Path环境变量中添加go的bin目录(注意大小写)

5. 命令行输入 go version

安装成功!
6. LiteIDE下载
LiteIDE的介绍大家可以自行在网上找,下面是Golang中国提供的LiteIDE下载
http://www.golangtc.com/download/liteide
选择自己合适的系统文件进行下载,这里我选择的是liteidex30.3.windows-qt5.zip
7. LiteIDE安装
把下载的文件解压缩到d:\app\liteide下
运行bin\liteide.exe即可启动
8. LiteIDE配置
打开LiteIDE的bin目录下的liteide.exe,开始配置Go的编译环境,依次点击菜单栏上的的:查看 -> 选项 -> LiteEnv,因为电脑上装的64位系统,所以选中win64.env进行环境变量编辑 ,点击确认,跳出编辑框
9. 修改完成后Ctrl + S保存(修改GOROOT等),重启LiteIDE

10.重启后在Package浏览下如果能找到Go则说明配置成功(左边栏的Package)

11.新建一个用于存放Go程序的目录,依次点击菜单栏上的:查看 -> 管理GOPATH -> 浏览(相当于配置工程路径)

点击ok会看到Package浏览多了一项
12.新建一个简单工程测试Go语言环境,依次点击菜单上的:文件 -> 新建,如下配置后,点击ok

点击工具栏上的BuildAndRun,或者执行Ctrl+B进行编译或者Ctrl+R编译并运行,运行程序,若成功在底下的编译输出窗口中会出现HelloWorld
来源: Windows 安装 Go语言开发环境 – Go语言中文网 – Golang中文社区
Windows 安装 Go语言开发环境
32 位请选择名称中包含 windows-386 的 msi 安装包,64 位请选择名称中包含 windows-amd64 的。下载好后运行,不要修改默认安装目录 C:\Go\,若安装到其他位置会导致不能执行自己所编写的 Go 代码。安装完成后默认会在环境变量 Path 后添加 Go 安装目录下的 bin 目录 C:\Go\bin\,并添加环境变量 GOROOT,值为 Go 安装根目录 C:\Go\ 。
验证是否安装成功
在运行中输入 cmd 打开命令行工具,在提示符下输入 go,检查是否能看到 Usage 信息。输入 cd %GOROOT%,看是否能进入 Go 安装目录。若都成功,说明安装成功。
不能的话请检查上述环境变量 Path 和 GOROOT 的值。若不存在请卸载后重新安装,存在请重启计算机后重试以上步骤。
环境变量设置
Go编译器需要三个必须的环境变量和一个可选的环境变量。环境变量在.bashrc 或其他配置文件中设置。
GOPATH=c:\go;c:\go\src;F:\Go\Demo
Go安装包的根目录。通常是放在$HOME/go,当然也可以是其他位置。默认为c:\go
$GOOS and 和 $GOARCH
这两个环境变量表示目标代码的操作系统和CPU类型。$GOOS选项有linux、 freebsd、darwin (Mac OS X 10.5 or 10.6) 和 nacl (Chrome的Native Client接口,还未完成)。$GOARCH的 选项有amd64 (64-bit x86,目前最成熟)、386 (32-bit x86)、 和arm (32-bit ARM,还未完成)。下面是$GOOS和 $GOARCH的可能组合:
我的为:GOOS=darwin GOARCH=amd64
$GOOS $GOARCH darwin 386 darwin amd64 freebsd 386 freebsd amd64 linux 386 linux amd64 linux arm incomplete nacl 386 windows 386 incomplete
$GOBIN (optional) (可选)
指明用于存放go的二进制程序目录。如果是没设置$GOBIN环境变量, 则默认是安装在$HOME/bin。如果设置了该变量,需要确保$PATH 变量也包含这个路径,这样编译器可以找到正确的执行文件。
$GOARM (optional, arm, default=6)
ARM处理器(待补充)。
需要说明的是$GOARCH和$GOOS环境变量表示的是目标代码 运行环境,和当前使用的平台是无关的。这个对于交叉编译是很方便的。在.bashrc文件中设置以下环境变量:
export GOROOT=$HOME/go export GOARCH=amd64 export GOOS=linux export PATH=.:$PATH:$GOBIN
检查是否能正常使用:
source ~/.bashrc cd ~ 8g -V
把 GOPATH 的值 E:\GOPATH; 改成了 E:\GOPATH 竟然好了,原来是结尾分号搞鬼了。