我试图在Oracle数据库中设置一个类似于以下内容的值:
2016-06-21 03:07:25.0
它是当前日期的一个varchar,它在小数点后有一个数字,连续几秒钟。我尝试了多种方法来实现这一目标,但没有结果:
SQL> select sysdate from dual;
SYSDATE
--------
21-06-16
我试过:
SQL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS.F';
ERROR:
ORA-01821: date format not recognized
SQ
对于oracle来说,
有没有人可以修复下面的函数,让它与"a number (10,2)“一起工作?只有这个条件。
我带着函数来了..
CREATE OR REPLACE FUNCTION Fmt_num(N1 in NUMBER)
RETURN CHAR
IS
BEGIN
RETURN TO_CHAR(N1,'FM9,9999.99');
END;
/
我可以将其与SQL语句一起使用,如下所示
SELECT Fmt_num(price) from A;
我正在使用Oracle 6i表单该表单是搜索表单,它有许多用于条件搜索的文本项,当按下时有命令按钮,表单将显示所有记录是用户选择的一些项目在creteria文本项,结果将根据这些筛选现在这是完成了,然后我想导出的结果到一个文本文件使用以下代码 OUTFILE TEXT_IO.FILE_TYPE;
filename varchar2(100);
sql_string varchar2(8000);
a number(10);
begin
a := 0;
if :norm.Dob_fr is not null and :norm.Dob_to is not null then
s
我正在将一个Oracle数据库迁移到PostgreSQL,以传输我没有问题的表,但是我在转录一个函数以便在Postgres中运行时遇到了问题,下面是Oracle中的函数:
create or replace FUNCTION "FN_HOUR_MINUTE" (P_HOUR IN NUMBER)
RETURN NUMBER
IS
-- PL/SQL Specification
V_RETORN NUMBER(4);
-- Convert hour to minute
-- PL/SQL Block
BEGIN
V_RETOR
我想使用DBMS_OUTPUT.PUT_LINE在oracle /sql中测试我的一个函数。我遇到的问题是,当我在函数中写入一个点数时,我会得到以下错误:
错误
ORA-06502: PL/SQL: numerischer oder Wertefehler: Fehler beim Konvertieren von Zeichen zu Zahl
ORA-06512: in Zeile 4 // line 4 is "v_net := pricecalculator(120.09)"
06502. 00000 - "PL/SQL: numeric or value e
在Oracle返回的值中始终获得2位小数的最佳方法是什么?
目前,我正在用number_format等包装所有与数据库相关的PHP函数,但我希望将它们直接移到SQL查询中。
更好的是,当我连接到Oracle时,是否有一个环境变量可以设置或类似,这样我就不必这样做了?
function OrderNetTotal($id) {
global $dbh;
$sth = $dbh->prepare("SELECT net_total FROM order_totals WHERE order_no = $id");
$sth->execute(
Oracle SQL Developer抱怨next SQL,尽管我似乎找不到原因:
IF to_number(to_char(sysdate, 'HH24')) > 6 THEN
IF to_number(to_char(sysdate, 'HH24')) < 9 THEN
SELECT 1 FROM dual;
ELSE
SELECT (CASE WHEN result = 'SUCCESS' THEN 1 ELSE 0 END) FROM t_job WHERE to_char(start_time, &
在Oracle PL/SQL中,我需要将提取的年份从日期转换为字符。我怎么能达到这个目标?代码给了我PLS-00306: wrong number or types of arguments tips 'TO_CHAR'
create or replace PROCEDURE PrintCustomersKPI IS
v_average_duration NUMBER;
v_tab CHAR := chr(9);
BEGIN
FOR v_year IN (SELECT DISTINCT EXTRACT(year FROM purchaseday) as Purch
我困在这段语句中,不知道如何在代码运行时对输出进行编程,以便将支付金额显示为$10.00,而馀额则保持相同的格式。我的代码也会提醒我两次做空头支票.我在代码中为我不太明白的主题做了一些标记。使用Oracle11g2e和这本书并不是很有帮助。如果有推荐的初学者书籍或资源,我正在听(阅读)。代码如下:
SET SERVEROUTPUT ON;
DECLARE
pay_num NUMBER(2) := 0; /*initialize to 0 */
loop_count NUMBER(2) := 12; /*intialize to max number
我有一个带有数字列的表:
create table test (a number(2,0));
接下来,我想创建一个基于a列的虚拟列:
alter table test add (b varchar2(3) as ('A:'||to_char(a)));
这会导致错误:
ORA-12899: value too large for column "B" (actual: 12, maximum: 42)
为什么我会有这个错误?如果我用substr替换to_char,这是可行的,但我想知道Oracle是如何确定“实际”和“最大”值的?
我怀疑最大值与数值类型的最大