假设我编写了一个REST服务,其目的是将新数据项添加到系统中.
我计划发帖到
http://myhost/serviceX/someResources
Run Code Online (Sandbox Code Playgroud)
假设有效,我应该使用什么样的响应代码?我可以回复什么内容.
我正在查看HTTP响应代码的定义并看到这些可能性:
200:返回描述或包含动作结果的实体;
201:这意味着创建.含义*请求已完成,并导致创建新资源.新创建的资源可以由响应实体中返回的URI引用,其中由Location头字段给出的资源的最具体URI.响应应该包括一个实体,其中包含资源特征和位置的列表,用户或用户代理可以从中选择最合适的资源特征和位置.实体格式由Content-Type头字段中给出的媒体类型指定.*
后者听起来更符合Http规范,但我一点也不清楚
响应应该包括一个包含资源特征和位置列表的实体
手段.
建议?解释?
由于最近存储在数据库中的数据不好,导致程序崩溃.这让我感到困惑,因为我觉得我有一个阻止这一点.
以下代码的目的是比较员工徽章编号并对其进行排序.如果出现错误,请返回-1并且士兵开启 - 请勿停止,因为数千个徽章编号中的一个错误:
public int compare(Employee t, Employee t1) {
Integer returnValue = -1;
try {
Integer tb = Integer.parseInt(t.getBadgeNumber());
Integer t1b = Integer.parseInt(t1.getBadgeNumber());
returnValue = tb.compareTo(t1b);
} catch (Exception e) {
returnValue = -1;//useless statement, I know.
}
return returnValue;
}
Run Code Online (Sandbox Code Playgroud)
当坏徽章编号被击中时(在这种情况下为t),我得到了一个"java.lang.IllegalArgumentException:比较方法违反了它的一般合同!" 错误而不是在catch中返回-1.
关于这里的捕获,我不明白什么?
完整的堆栈跟踪:
16-May-2018 14:28:53.496 SEVERE [http-nio-8084-exec-601] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [RequestServlet] in context with path [/AppearanceRequest] threw exception
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:868)
at java.util.TimSort.mergeAt(TimSort.java:485)
at java.util.TimSort.mergeForceCollapse(TimSort.java:426)
at java.util.TimSort.sort(TimSort.java:223)
at java.util.TimSort.sort(TimSort.java:173) …Run Code Online (Sandbox Code Playgroud) 不应强制执行引用完整性的原因之一是性能.因为Db必须根据关系验证所有更新,它只会使事情变慢,但执行和不执行的其他优缺点是什么?
因为无论如何都要在业务逻辑层中维护关系,所以它只会让db成为冗余.你对此有什么想法?
我正在使用Oracle 10.2.
我正在使用一些脚本将一些ORACLE对象从一个SCHEMA(S1)移动到另一个(S2).我正在创建具有DBA角色的功能.移动时,我的一个功能变得无效,但我不明白为什么.它的代码如下:
my_func,并将
CREATE OR REPLACE FUNCTION S2."MY_FUNC" RETURN VARCHAR2 IS
something VARCHAR2;
othervar VARCHAR2 (50):= 'TEST';
BEGIN
something := S2.MY_FUNC2();
/*some code*/
return othervar;
END;
/
Run Code Online (Sandbox Code Playgroud)
如果我使用MY_FUNC2没有架构,它的工作原理:
something := MY_FUNC2();而不是 something := S2.MY_FUNC2();
My_FUNC2
CREATE OR REPLACE FUNCTION S2."MY_FUNC2" RETURN VARCHAR2 IS
something BOOLEAN;
othervar VARCHAR2 (50) := 'TEST2';
BEGIN
/*some code*/
return othervar;
END;
/
Run Code Online (Sandbox Code Playgroud)
MY_FUNC2有一个这样的同义词:
CREATE OR REPLACE PUBLIC SYNONYM "MY_FUNC2" FOR "S2"."MY_FUNC2"
Run Code Online (Sandbox Code Playgroud)
MY_FUNC 编译错误:
PLS-00302:必须声明组件'MY_FUNC2'
我不明白为什么我得到这个错误,当我的函数在其他模式(S1)中时,它们具有完全相同的结构并且同义词创建完全相同(但指向S1)并且MY_FUNC编译良好.
我最初没有创建这个函数和同义词.是否有可能我在S2中缺少某些特权,所以MY_FUNC可以正常工作吗?
我引用了Oracle关于Atomic Access的Java文档
- 读取和写入对于引用变量和大多数原始变量(除long和double之外的所有类型)都是原子的.
- 对于声明的所有变量
volatile(包括长变量和双变量),读取和写入都是原子的.
我明白是怎么volatile运作的.但是提到volatile明确声明for long和double变量以在第二个语句中获得原子访问的要求,是在第一个语句中volatile为引用变量和大多数原始变量(除long和double之外的所有类型)声明可选.
但我看到的代码使用原始类型的显式volatile声明int来实现原子访问; 而不这样做不保证原子访问.
int variable1; // no atomic access
volatile int variable2; // atomic access
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
首先,在这里为一个非常新手的问题道歉。当我支持的客户迁移到 12c 时,我才刚刚开始了解数据泵转储在 11g 中是如何工作的。该死的运气。:)
所以一个希望很快的问题:我正在使用运行 12c 的同事的 Windows 服务器来尝试导入客户的数据泵转储(有他们的转储和日志文件),但我不知道在哪里放置转储以进行导入。当我运行时:
select * from dba_directories where directory_name='DATA_PUMP_DIR';
Run Code Online (Sandbox Code Playgroud)
这是返回的输出:
c:\ade\aime_v\oracle/admin/seeddata/dpdump/
Run Code Online (Sandbox Code Playgroud)
该目录在这台机器上的任何地方都不存在,而且它看起来像一个不寻常的目录路径。(我的同事正在休假,否则我当然会问)。
那么 12c 中对目录的处理方式是否有所改变?我一直在想,创建这个服务器的人肯定不能只是将数据泵目录指向这样一条不存在的路径。我目前正在搜索自己的圈子,所以我想这个简短的问题很简单,作为第一步,我应该从哪里开始,以确定我的目录在哪里放置我的转储导入文件?
再次为这个令人尴尬的新手问题道歉,并提前感谢您接受我的问题。
给定以下样本表结构是否有办法添加到唯一约束以确保(GUID,'Y')组合的唯一性?
应用程序逻辑 - 通过guid生成具有相同guid但新的新版本来更新luid; 以前变为非活动状态('Y' - >'N')
GUID - 外部标识
LUID - 内部标识
create table id_active(
"GUID" RAW(16) NOT NULL,
"LUID" RAW(16) NOT NULL,
"IS_ACTIVE" char(1) NOT NULL CHECK ( "IS_ACTIVE" IN ('Y', 'N')),
PRIMARY KEY ("GUID", "LUID"),
--unique constraint goes here
Run Code Online (Sandbox Code Playgroud) 我正在尝试发送 ping,但使用源 Ip。试过这个,
ping example.org -i 88.65.48.77
Run Code Online (Sandbox Code Playgroud)
它 ping 没有任何错误,但我很困惑。在手册中,它说 -S 是一个源操作符。但是如果我使用 -S 88.65.48.77,我会得到一个Ping Transmit failed. General Error.那么正确的方法是什么?
我的问题是我有一个架构,其中所有表的统计信息都被锁定.
我在互联网上发现我可以使用该DBMS_STATS.UNLOCK_TABLE_STATS (SCHEMA_NAME)程序解锁.
我需要知道的是Oracle如何确定何时锁定统计信息以及何时不确定这些情况.
我有一个简单的交互式报告Apex 5.0。它只是从表中提取数据的简单语句。
我需要调整 中每列的大小,以便数据正确显示在报告中。
现在发生的事情是我有一个名为 customer 的列,其中包含客户名称。现在的名字是30要40长在报告中它是在两条线越来越细分的字符。
我尝试使用以下方法,但没有效果。你能帮我解决这个问题吗?我30在报告中有列。
#apexir_NAME{width: 200px;}
oracle ×5
database ×2
import ×2
java ×2
atomic ×1
command-line ×1
comparator ×1
concurrency ×1
content-type ×1
datapump ×1
exception ×1
interactive ×1
oracle-apex ×1
oracle10g ×1
oracle12c ×1
ping ×1
plsql ×1
report ×1
rest ×1
sql ×1
try-catch ×1
volatile ×1
windows ×1