这个函数是真正的PL/SQL吗?
它在 PL/SQL 中的使用形式是否正确?
SELECT ename
,hiredate
, TO_CHAR(TRUNC(ADD_MONTHS(hiredate,6),'MONTH'),'Le DD MONTH YYYY') AS "Révision"
FROM emp
谢谢
is it used in the correct form in PL/SQL ?
SELECT ename
,hiredate
, TO_CHAR(TRUNC(ADD_MONTHS(hiredate,6),'MONTH'),'Le DD MONTH YYYY') AS "Révision"
FROM emp
thx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
它不是 PL/SQL(Oracle 对 SQL 的过程扩展)。
我相信 ADD_MONTHS 是 Oracle 特定的 SQL。
不确定使用 TRUNC 删除日期/时间的月份部分是否也是 Oracle 特定的。
It isn't PL/SQL (which is Oracle's procedural extension to SQL).
ADD_MONTHS is, I believe, Oracle specific SQL.
Not sure whether using TRUNC to remove the day in month portion of a date/time is also Oracle specific.
该语句是有效的 Oracle SQL:您将六个月添加到
hiredate
,然后以特定格式返回该月的第一天。然而,如果您想在 PL/SQL 中使用它,您需要将其返回到某个变量中:
当然,您的 EMP 表中可能有不止一条记录。因此,您要么需要限制查询返回单行,要么需要使用能够处理多行的变量,例如 PL/SQL 集合或游标:
That statement is valid Oracle SQL: you are adding six months to the
hiredate
and then returning the first day of that month in a specific format.However, if you want to use it in PL/SQL you need to return it into some variable(s):
Of course, it is likely you have more than one record in your EMP table. So you either need to restrict the query to return a single row, or you need to use a variable capable of handling multiple rows such as a PL/SQL collection or a cursor:
它可能不是 PL/SQL,但它(几乎)是有效的 Oracle SQL。我能看到的唯一问题是格式模型中的“Le”需要加引号才能工作,因为这只是随机文本,否则 Oracle 会尝试为其找到一些含义。
It may not be PL/SQL but it is (almost) valid Oracle SQL. The only problem I can see is that the 'Le' in the in format model needs to be quoted for it to work as this is just random text that Oracle would otherwise try to find some meaning for.
如果您的意思是它符合 SQL99 或 SQL92,请使用验证器 http://developer.mimer .com/validator/parser99/index.tml
If you mean if it's SQL99 compliant or SQL92, use the validator http://developer.mimer.com/validator/parser99/index.tml