在给定 SQL Server 的情况下,合理地精通 Oracle 需要多长时间

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/182534/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 17:20:58  来源:igfitidea点击:

How long does it take to become reasonably proficient in Oracle given SQL Server

sql-serveroracle

提问by David Max

In applying for jobs via agents I sometimes get blocked by an agent who says do you know software package X. When I reply that I know the similar package Y they might say unless you know X I cannot put you forward.

在通过代理申请工作时,我有时会被代理阻止,他说你知道软件包 X。当我回答说我知道类似的软件包 Y 时,他们可能会说除非你知道 XI 不能推荐你。

The problem is that some of these agents don't know what they talking about, they are merely being used by their clients as a screening filter.

问题是其中一些代理不知道他们在说什么,他们只是被客户用作筛选过滤器。

It would be useful to be able to say to these agents that because I know Y I can expect to become reasonably proficient in X in a given number of days/months. However not knowing X determining the required time is why I'm asking this question.

能够对这些代理说,因为我知道 YI 可以期望在给定的天数/月数内变得相当精通 X,这将是有用的。但是不知道 X 确定所需的时间就是我问这个问题的原因。

Most recently X was Oracle and Y was SQL Server.

最近的 X 是 Oracle,Y 是 SQL Server。

Please can those of you who know both, express an opinion on how long is required to become reasonably proficient? NB I'm not talking about becoming a DBA!

请你们中的那些了解两者的人,就需要多长时间才能达到合理的熟练程度发表意见吗?注意我不是在谈论成为一名 DBA!

回答by

I'll state my bias upfront - Oracle is far more complex than Sql Server. So it depends what you'll be asked to do. You say that this is not for a DBA position but that definition is pretty fluid. At my company, Developers are charged with designing tables, adding the correct indexes, determining partitioning.

我会预先声明我的偏见 - Oracle 比 Sql Server 复杂得多。所以这取决于你会被要求做什么。您说这不适用于 DBA 职位,但该定义非常流畅。在我的公司,开发人员负责设计表、添加正确的索引、确定分区。

If you say, all I'll do is code in java or c# and call packages written by a DBA or Oracle Developer, then you are safe.

如果你说,我要做的只是用 java 或 c# 编写代码并调用 DBA 或 Oracle 开发人员编写的包,那么你就安全了。

But if you take all of your MSSS experience and add semi-colons to the end of your lines you'll kill your Oracle instance. Many standard practices in MSSS are anethema to Oracle. In MSSS it's recommended to have clustered indexes on most every table. In Oracle we build IOTs (Index Organized Tables) only for specific purposes. In MSSS doing DDL in T-SQL is as easy as falling off a log. In Oracle it is made difficult on purpose, it's discouraged and in fact somewhat dangerous. In MSSS you whip off #temp table like they're jelly beans, in Oracle we plan them in advance since they are permanent database objects that aren't just created in the middle of a proc when the logic gets a little tricky.

但是,如果您利用所有 MSSS 经验并在行尾添加分号,您将杀死 Oracle 实例。MSSS 中的许多标准实践是 Oracle 的诅咒。在 MSSS 中,建议在大多数表上都有聚集索引。在 Oracle 中,我们仅为特定目的构建 IOT(索引组织表)。在 MSSS 中,在 T-SQL 中执行 DDL 就像从日志中掉下来一样容易。在 Oracle 中,它故意变得困难,不鼓励这样做,实际上有些危险。在 MSSS 中,您可以将#temp 表像果冻豆一样删除,在 Oracle 中我们提前计划它们,因为它们是永久数据库对象,当逻辑变得有点棘手时,它们不是在 proc 中间创建的。

That said, would you be able to make Oracle do something? Well, yah, but the real question is will it work efficiently and scale to meet the needs of the business your agent placed you at. And that's a resounding no.

也就是说,你能让 Oracle 做点什么吗?嗯,是的,但真正的问题是它能否有效地工作并扩展以满足您的代理为您安排的业务的需求。这是一个响亮的否定。

回答by JosephStyons

I've gone the other way (Oracle first, then SQL Server). My experience is:

我走了另一条路(首先是 Oracle,然后是 SQL Server)。我的经验是:

SQL queries - trivial differences, except in the realm of string-date conversions, which are WAY easier in Oracle.

SQL 查询 - 除了字符串-日期转换领域之外的细微差别,这在 Oracle 中要容易得多。

Stored Procedures - T-SQL syntax is significantly different from PL/SQL. There is a learning curve there, but nothing insurmountable.

存储过程 - T-SQL 语法与 PL/SQL 有很大不同。那里有一个学习曲线,但没有什么是不可逾越的。

Database Admin - very different, but WAY easier in SQL Server. If that's part of the job description, then they might be justified in considering someone else.

数据库管理员 - 非常不同,但在 SQL Server 中更容易。如果这是工作描述的一部分,那么他们可能有理由考虑其他人。

回答by paxdiablo

If you're being hired as a DBA, it will take a while to switch between databases as the management of them differs (I base this on my experience with Oracle and DB2 only).

如果您被聘为 DBA,那么在数据库之间切换将需要一段时间,因为它们的管理不同(我仅根据我在 Oracle 和 DB2 方面的经验)。

I DON'T know SQL Server but I can imagine a Microsoft program with its nice GUI management would be vastly different to managing DB2/z, for example (although you can use the fancy DB2 LUW (Linux/UNIX/Window) tools if you're that way inclined).

我不知道 SQL Server,但我可以想象一个具有良好 GUI 管理的 Microsoft 程序将与管理 DB2/z 大不相同,例如(尽管您可以使用花哨的 DB2 LUW(Linux/UNIX/Window)工具,如果您'是那种倾向)。

If you're just cutting code to use the database, the SQL differences are minor (relatively). That shouldn't take much time at all, assuming you're already proficient with SQL.

如果您只是为了使用数据库而削减代码,则 SQL 差异很小(相对而言)。假设您已经精通 SQL,这根本不会花费太多时间。

回答by ConcernedOfTunbridgeWells

I went from SQL Server to Oracle in 2001 where I went from working on a VB6/SQL Server project (as a developer) to working as an Oracle development DBA for a large J2EE project. Here are the edited highlights of my experiences and some reflections.

我在 2001 年从 SQL Server 转到 Oracle,在那里我从从事 VB6/SQL Server 项目(作为开发人员)工作到担任大型 J2EE 项目的 Oracle 开发 DBA。以下是我的经历和一些反思的编辑亮点。

For development, the basic principle of SQL is not radically differnt. T-SQL is a somewhat different beast to PL/SQL so the idioms are a bit different. Most competent programmers should be able to make the jump by just tinkering around and getting some good SQL server books such as the Guru's Guideor Oracle books such as Expert one-on-one Oracle, depending on which way you're going.

对于开发,SQL 的基本原理并没有根本不同。T-SQL 与 PL/SQL 有点不同,所以习惯用法有点不同。大多数有能力的程序员应该能够通过修改并获得一些好的 SQL 服务器书籍(如Guru's Guide)或 Oracle 书籍(如Expert one-on-one Oracle )来实现跳跃,这取决于你要走哪条路。

I'd say for a developer a week or two to get used to another database platform will get you most of the way there. The basic principles are fairly similar (modulo differences in the architecture); really only the window dressing is different. However, if you're going to Oracle, get a copy of a third-party query tool such as TOADas these are much, much, much better than the ones that Oracle supplies.

我想说的是,对于开发人员来说,一两个星期来习惯另一个数据库平台将使您在那里获得大部分时间。基本原理非常相似(架构中的模数差异);真的只有橱窗装饰不同。但是,如果您要使用 Oracle,请获取第三方查询工具(例如TOAD)的副本,因为这些工具比 Oracle 提供的要好得多。

Agents are notoriously bad for matching specific buzzwords and I get this on a semi-regular basis (I'm a contractor). If you need to bone up on SQL Server the Developer Edition is very cheap and will install on a desktop O/S such as Windows XP. Oracle also offers Free downloadsfor all their supported platforms that you can use to tinker.

众所周知,代理不擅长匹配特定的流行语,我半定期(我是承包商)得到这个。如果您需要使用 SQL Server,Developer Edition非常便宜,并且可以安装在桌面操作系统(例如 Windows XP)上。Oracle 还为其所有受支持的平台提供免费下载,您可以使用它们进行修补。

You might also get some mileage from asking a stackoverflow question along the lines of "What are the main idiomatic differences between PL/SQL and T-SQL".

您也可能会从“PL/SQL 和 T-SQL 之间的主要惯用差异是什么”这一行提出 stackoverflow 问题中获得一些启发。

回答by MusiGenesis

I've done SQL Server for 10 years, but started working with Oracle about a year and a half ago. Like any database, there's no magical proficiency point - you just learn more about it the more you use it. In terms of what a developer would need to know, it shouldn't take more than a week (and even that's a bit much) for an experienced developer to get up to speed with using it. PL/SQL isn't that much different than T-SQL, although stored procs are kind of different.

我已经使用 SQL Server 10 年了,但大约一年半前开始使用 Oracle。与任何数据库一样,没有神奇的精通点——您只需使用得越多,对它的了解就越多。就开发人员需要了解的内容而言,经验丰富的开发人员需要不超过一周(甚至有点多)的时间才能快速上手使用它。PL/SQL 与 T-SQL 没有太大不同,尽管存储过程有点不同。

Programming-wise, the Oracle data access classes are modeled on ADO.NET (we use OleDb actually - one of the side benefits is that you don't have to futz around with the OracleBlob class in order to access BLOB data), so not much learning to be done there.

在编程方面,Oracle 数据访问类以 ADO.NET 为模型(我们实际上使用 OleDb - 附带的好处之一是您不必为了访问 BLOB 数据而在 OracleBlob 类周围乱搞),所以不是在那里需要学习很多东西。

I originally had my team using TOAD, because I had heard that TOAD is what you're supposed to use with Oracle (although I also heard bad things about it). We eventually got to the point where I was the only one using TOAD, and everyone else was using SqlDeveloper. Avoid TOAD.

我最初让我的团队使用 TOAD,因为我听说 TOAD 是您应该与 Oracle 一起使用的(尽管我也听说过关于它的坏消息)。我们最终达到了我是唯一一个使用 TOAD 的地步,其他人都在使用 SqlDeveloper。避免蟾蜍。

回答by Matthew Watson

If all you want to do is put a bullet point on your resume to get past the agents, just add it, that will get you past the agents and give you a chance to get your foot in the door. If you are an honest type, grab Oracle XE, Read the appropriate guide at the documentationlibrary, and spend a day or 5 throwing together a blog/address book/flickr clone/etc in your favorite language against Oracle.

如果你想做的只是在简历上写上一个要点以通过代理商,只需添加它,这将使您通过代理商并让您有机会进入大门。如果您是一个诚实的人,请使用 Oracle XE,阅读文档库中的相应指南,然后花一到 5 天时间用您最喜欢的语言编写博客/地址簿/flickr 克隆/等以对抗 Oracle。

As others have suggested there is some significant difference in things you would do compared to SQL Server, if you just apply what you know from SQL Server to Oracle, you'll likely kill performance.

正如其他人所建议的,与 SQL Server 相比,您所做的事情存在一些显着差异,如果您只是将您从 SQL Server 中了解到的知识应用到 Oracle,您可能会降低性能。

回答by Guy

I would disagree that the SQL is similar. The SQL SYNTAXis similar (to the lowest common denominator of ANSI) for basic CRUD development. But actually building packages, writing multi-table / multi step joins, bulk updates and inserts, use of the rich and powerful Oracle feature set is very different from SQL Server. This takes a different mindset and can take many years to master. However...

我不同意 SQL 是相似的。在SQL语法类似于(以ANSI的最小公分母)为基本的CRUD发展。但实际上构建包、编写多表/多步连接、批量更新和插入、使用丰富而强大的Oracle 特性集与SQL Server 有很大不同。这需要不同的心态,可能需要很多年才能掌握。然而...

The purpose of the CV / resume is to get an interview.

简历/简历的目的是获得面试机会。

Work with your agent to highlight your best TALENTS and BEHAVIOUR'S, not purely skills.

与您的经纪人合作,突出您的最佳才能和行为,而不仅仅是技能。

Skill's can be learnt and taught. A talent for, and the demonstration of, learning new skills in new environments is gold dust for an employer.

技能是可以学习和教授的。在新环境中学习新技能的才能和展示对雇主来说是金粉。

Don't try to blag it. Don't lie. You'll be found out. Use your experience gained from SQL Server to demonstrate that you can solve the problem. Show eagerness to learn, train and graft.

不要试图吹嘘它。不要说谎。你会被发现的。使用从 SQL Server 获得的经验来证明您可以解决问题。表现出学习、训练和嫁接的渴望。

But, if they really want a "parachute in and start running Oracle programmer", then your stuffed!

但是,如果他们真的想要一个“降落伞进入并开始运行 Oracle 的程序员”,那么你就饱了!

回答by paul

AS for my knowledge,It is better to learn Oracle rather than SQL Server because Through out my life I have come across majority of people who are working with SQL Server and a lot competition involved with it because this database is easy to learn.So If you learn oracle,it makes you strong at initial stages and less competition Involved with it.

就我的知识而言,学习 Oracle 比学习 SQL Server 更好,因为在我的一生中,我遇到过大多数使用 SQL Server 的人,并且涉及很多竞争,因为这个数据库很容易学习。所以如果你学习oracle,它使你在初始阶段变得强大,并且减少了与之相关的竞争。