我正在尝试创建两个表,这是抛出ORA-00902错误,无法弄清楚这里有什么问题...
CREATE TABLE VEHICLE_STORE
(
MODEL_NO VARCHAR2(12) NOT NULL,
DESCRIPTION VARCHAR2(1000) NOT NULL,
UNIT_PRICE NUMBER(10) NOT NULL,
CURRENT_STOCK NUMBER(5) NOT NULL,
CC NUMBER(3) NOT NULL,
CONSTRAINT vehicle_store_pk PRIMARY KEY(MODEL_NO)
);
CREATE TABLE VEHICLE_BOOKING
(
BOOKING_ID VARCHAR2(12) NOT NULL,
CUSTOMER_NAME VARCHAR2(30) NOT NULL,
EMAIL_ID VARCHAR2(30) NOT NULL,
CONTACT NUMBER(15) NOT NULL,
ADDRESS VARCHAR2(500) NOT NULL,
PINCODE NUMBER(10) NOT NULL,
MODEL_NO VARCHAR2(12) NOT NULL,
DATE_OF_BOOKING VARCHAR2(12) NOT NULL,
EXPECTED_DATE_OF_DELIVERY VARCHAR2(12) NOT NULL,
CONSTRAINT vehicle_booking_pk PRIMARY KEY(BOOKING_ID),
CONSTRAINT vehicle_booking_fk FOREIGN_KEY(MODEL_NO) REFERENCES VEHICLE_STORE(MODEL_NO)
); …Run Code Online (Sandbox Code Playgroud) NET 应用程序并尝试更新数据库表。下面的更新查询会起作用吗?如果我设置 BindByName = True .NET 是否也会将 null 和 SYSDATE 视为参数?PS这是缩短的查询,实际查询有点复杂,所以在我尝试之前需要一些确认
cmd.Parameters.Clear()
cmd.CommandText = "UPDATE TBL_xxx_xxx SET NEXT=null, ACTIONDATE=SYSDATE, comments=:pcomments, STATUS=11 WHERE ACTIONDATE IS NULL AND WFID=:pwid AND ACTIONBY=:pactionby"
cmd.CommandType = CommandType.Text
cmd.BindByName = True
cmd.Parameters.Add(New OracleParameter(":pcomments", OracleDbType.Varchar2)).Value = somevalue
cmd.Parameters.Add(New OracleParameter(":pwid", OracleDbType.Int64)).Value = somevalue
cmd.Parameters.Add(New OracleParameter(":pactionby", OracleDbType.Varchar2)).Value = somevalue
cmd.ExecuteQuery()
Run Code Online (Sandbox Code Playgroud) 有了这个查询: select sysdate from dual;
结果是:27-09-2018 07:50:50 ——这个UK时间
和 : Select dbtimezone from dual;
输出: +10:00
我想要 sysdate是同一时区的dbtimezone
我试图用 alter database set time_zone='AEST',但如果这是正确的解决方案,我有点困惑。
任何帮助最受赞赏。谢谢。
我将使用来自Oracle 11g的自动分区,我想知道是否有任何选项可提供特定于分区名称的模式?
例如,我有:
create table
pos_data (
start_date DATE,
store_id NUMBER,
inventory_id NUMBER(6),
qty_sold NUMBER(3),
)
PARTITION BY RANGE (start_date)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION pos_data_init VALUES LESS THAN (TO_DATE('01-01-2017', 'DD-MM-YYYY')),
PARTITION pos_data_201702 VALUES LESS THAN (TO_DATE('01-02-2017', 'DD-MM-YYYY')),
PARTITION pos_data_201703 VALUES LESS THAN (TO_DATE('01-03-2017', 'DD-MM-YYYY')),
);
Run Code Online (Sandbox Code Playgroud)
我将使用init分区来包含2017年之前的所有行,然后是每个月的分区。
如何命名分区将自动生成?是否有可能创建名称结尾为YYYYMM的模式?还是我以后必须重命名那些分区?
我有一个基于每日分区的表.
我可以使用以下查询删除paritition
ALTER TABLE MY_TABLE DROP PARTITION FOR(TO_DATE('19-DEC-2017','dd-MON-yyyy'))
Run Code Online (Sandbox Code Playgroud)
如何在15天之前删除所有分区(多个分区)?
我正在尝试查找某个日期范围的平均开始时间,但平均功能似乎无法正常使用to_char(cast(Start_Dt as date),'HH24:MI')(Start_Dt sample:)12/12/18 02:30:13。关于如何获得理想结果的任何想法?
样品:
SELECT
job_nm
avg(to_char(cast(Start_Dt as date),'HH24:MI'))
FROM batch_table
Where Start_Dt >= trunc(sysdate-10)
group by job_nm
Run Code Online (Sandbox Code Playgroud)
错误:ORA-01722:无效号码01722。00000-“无效号码” *原因:指定的号码无效。*操作:指定一个有效数字。
理想的结果是查询仅查看最近10天运行的作业以及该期间的平均开始时间。
预期结果:
JOB_NM | AVG Time
open | 2:30
close | 3:30
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,其中用户对我们的 Active Directory 进行身份验证:
private bool Authenticate()
{
using (var context = new PrincipalContext(ContextType.Domain, Environment.UserDomainName))
{
return context.ValidateCredentials(this.Username.Text.Trim(), this.Password.Text.Trim());
}
}
Run Code Online (Sandbox Code Playgroud)
它工作了好几年。现在,我们的 Windows 7 机器被 Windows 10 取代,一些用户收到此错误:
服务器无法处理目录请求。
在System.DirectoryServices.Protocols.ErrorChecking.CheckAndSetLdapError(的Int32误差)
在System.DirectoryServices.Protocols.LdapSessionOptions.FastConcurrentBind()
在System.DirectoryServices.AccountManagement.CredentialValidator.BindLdap(的NetworkCredential creds,ContextOptions contextOptions)
在System.DirectoryServices.AccountManagement。 CredentialValidator.Validate(String userName, String password)
at System.DirectoryServices.AccountManagement.PrincipalContext.ValidateCredentials(String userName, String password)
at DPI.FormLogin.Authenticate() in c:\Developing\Source\DPI\Client\DPI\FormLogin .cs:第 280 行
该错误仅对某些用户出现,而不是一直出现。也许这与现在在 Win 10 上比在 Win 7 上更严格的安全设置有关。
知道如何解决吗?如何查询当前连接的 LDAP 服务器?也许我们的服务器配置略有不同,问题仅限于可能配置错误的单个服务器。
我是数据库的新手.我想在oracle中对现有的大型数据库表进行系统分区.有人可以建议我如何在oracle数据库中为现有表实现系统分区?
注意我只是在寻找不寻找范围或哈希或复合分区的系统分区.
我正在尝试在visiual stdio 2015 中的MVC Code-First c# 项目上启用迁移。我安装了oracle 11g odt 和客户端两台机器,我做了相同的安装,并在我的xe 数据库上创建了一个架构。两台机器是相同的 tns 文件,但其中一台在 oracle 数据库上进行了迁移,其中一台没有。我做了所有的事情,但我无法解决 ORA-12154 问题。
这个我的 TNS 文件位于 oracle 客户端和 oracexe 和 dbcontext
XE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = XE)
(SRVR = DEDICATED)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.0.234)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
this is my dbcontext
using System; …Run Code Online (Sandbox Code Playgroud) 我对表的insert语句出错.属性E_STIME AMD E_FTIME是事件的开始日期,开始时间和结束日期,结束时间.两者的数据类型都是TIMESTAMP (6).
我试图将数据插入到已在sracle plus中创建的表上,但是我得到了一个错误
ORA-01830:日期格式图片在转换整个输入字符串之前结束
INSERT INTO EVENT (E_ID, E_NAME, E_STIME, E_FTIME, E_COST, ET_ET_ID, V_V_ID, C_C_ID)
VALUES ('E000002', 'RAVISINGH PARTY', TO_TIMESTAMP('2017-01-11 13:00:00.00',
'YYYY-MM-DD HH24:MI:SS'), TO_TIMESTAMP('2017-01-11 18:00:00.00',
'YYYY-MM-DD HH24:MI:SS'),'4897.00','ET002','V0002','C0002');
Run Code Online (Sandbox Code Playgroud)
它最初给出了一个错误 -
ORA-01843:不是有效月份
在TO_TIMESTAMP插入后添加了我的位ORA-01830.
我究竟做错了什么?
使用Oracle SQL时,为什么选择语句
select to_char(to_date('31-DEC-18'), 'YYYY-IW')
from dual;
Run Code Online (Sandbox Code Playgroud)
返回“ 2018-01”?
我了解'IW'使用的是我想要使用的ISO标准,但是据我的研究可知,根据ISO标准,2018年12月31日发生在2019年的第1周。所以我理解为什么select语句为“ IW”返回“ 01”,但是为什么它为“ YYYY”返回“ 2018”?语句不应该返回'2019-01'吗?
对于我正在使用的数据,最好使用IW而不是WW。
我正在尝试运行以下查询以选择 2 个日期之间的一些结果,但由于条件不存在,我得到了结果。那么这里有什么问题呢?
select OPEN_TIME, STATUS
from PROBSUMMARY
where trunc (open_time) >= '01-01-2020'
and trunc (open_time) < '01-01-2021'
Run Code Online (Sandbox Code Playgroud) oracle ×11
sql ×5
c# ×2
oracle11g ×2
.net ×1
asp.net-mvc ×1
database ×1
entity-framework-migrations ×1
oracle10g ×1
partition ×1
partitioning ×1
sqlplus ×1
sysdate ×1
timezone ×1
vb.net ×1