我想编写可重用的代码,需要在开头声明一些变量并在脚本中重用它们,例如:
DEFINE stupidvar = 'stupidvarcontent';
SELECT stupiddata
FROM stupidtable
WHERE stupidcolumn = &stupidvar;
Run Code Online (Sandbox Code Playgroud)
如何声明一个变量并在后面的语句中重用它,比如使用SQLDeveloper.
尝试
BEGIN和END;.使用获取变量&stupidvar.DEFINE并访问变量.VARIABLE并访问变量.但我在尝试期间遇到各种错误(未绑定变量,语法错误,预期SELECT INTO...).
我们从数据库中获取属性(我们无法影响),并希望通过键/值映射来访问它们.我们面临的问题是其中一个属性键包含空白字符.
foo bar = barefoot
Run Code Online (Sandbox Code Playgroud)
这是 - 正确 - 解释如下
key: foo
value: bar = barefoot
Run Code Online (Sandbox Code Playgroud)
有没有办法在键中包含空格,以便它不被解释为分隔符?我猜这种行为就像预期的那样,但我想我可以试试这里.
我问这个,因为明天是我第一次与客户会面,她告诉我,她现在正在做什么(手工)以及它是什么,新的网络应用程序到底应该做些什么.
我想知道,在她向我展示这个过程的步骤时我做了什么.我是否识别用例并直接对其进行建模?我是否在prosa中描述过程?如何描述/转录从现实世界到模型的过程,然后模型是代码的基础?
为您开发新开发项目的最佳实践是什么?有小费吗?
我有一个使用以下doctype-definition的XHTML文件:
`<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">`
Run Code Online (Sandbox Code Playgroud)
Eclipse正在尝试使用引用的dtd文件验证该文件,这会导致此错误:
ParseException: Error validating the model: Server returned HTTP response code: 503 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
Run Code Online (Sandbox Code Playgroud)
原因是预期的错误响应,如下所述:
所以我试图通过禁用HTML验证来阻止Eclipse尝试下载文件,但这没有帮助.
如何摆脱错误消息并阻止Eclipse尝试下载DTD文件?
编辑:Eclipse版本是Galileo 3.5
我们这里有一个奇怪的问题,我们无法向自己解释.
我们在Oracle DB Version 10.2.0.5.8中有一个视图.该视图使用INSTEAD OF触发器.
这是触发器的代码:
CREATE OR REPLACE TRIGGER V1_T1_BIUD
INSTEAD OF INSERT OR UPDATE OR DELETE
ON V1_T1
FOR EACH ROW
DECLARE
AnyId NUMBER;
BEGIN
IF INSERTING THEN
INSERT INTO Table T1 (
F1, F2, F3, F4, F5
) VALUES (
:new.F1, :new.F2, :new.F3, :new.F4, :new.F5
);
ELSIF UPDATING THEN
UPDATE T1 SET F1 = :new.F1,
F2 = :new.F2,
F3 = :new.F3,
F4 = :new.F4,
F5 = :new.F5
WHERE F1 = :old.F1;
ELSIF DELETING THEN
DELETE FROM …Run Code Online (Sandbox Code Playgroud) 这是我昨天以来一直在努力的事情.
我有约会保存在数据库中.它们包括日期和时间,如:
01.02.1970 14:00
Run Code Online (Sandbox Code Playgroud)
(德语格式,在美国我觉得它会像02/01/1970 2:00 pm).
第一个想法:将其保存为SQL.DATE!
所以我创建了一个表:
CREATE TABLE appointments (id NUMBER(10) NOT NULL, datum DATE NOT NULL, PRIMARY KEY id)
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.
现在我写了一个DAO,保存我通过网络表单输入的约会.之后我想写一个单元测试,检查约会是否正确保存.
相关测试部分如下:
JdbcDao myDao = new JdbcDao();
myDao.setDataSource(jdbcTemplate.getDataSource());
myDao.saveAppointment(appointmentModel);
// Not needed but I saw, the appointment is saved in the database
setComplete();
// And now for the (sorry for the harsh words) pain in the *** part
String sql = "SELECT id, datum FROM appointments WHERE datum ... // <--
Run Code Online (Sandbox Code Playgroud)
< - :这只是部分,我不知道输入什么,以查看在特定日期数据库中是否已存在日期.
我试过了:
datum …Run Code Online (Sandbox Code Playgroud) 我有一个IceFaces表单和几个输入字段.
假设我有这个:
<ice:selectOneMenu id="accountMenu"
value="#{accountController.account.aId}"
validator="#{accountController.validateAccount}">
<f:selectItems id="accountItems"
value="#{accountController.accountItems}" />
</ice:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
还有这个:
<ice:selectOneMenu id="costumerMenu"
value="#{customerController.customer.cId}"
validator="#{customerController.validateCustomer">
<f:selectItems id="customerItems"
value="#{customerController.customerItems}" />
</ice:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
如果我改变一个值,则调用相应的验证器,什么是好的.但也调用了另一个验证器,这是不好的,因为用户得到一个令人恼火的消息,将值插入他可能只是要注意的字段.这就像用一根棍子向"用户快点!"戳戳用户.坏!
我认为属性"partialSubmit"正在控制这种行为,所以只提交了一个DOM-part,它受到用户交互的影响,但如果我声明要将两个组件部分提交,则没有任何变化.如果更改了一个组件值,则仍会调用两个验证器.
在完全提交之前,如何防止整个表单被验证?
我们的数据库中有数值,表示两值状态.当然,这将完全匹配布尔值,但oracle没有这样的数据类型.数据库中的NUMBER(1,0)类型与Java中的java.lang.Short类型匹配(有时它们使用NUMBER(*,0)来表示与java.math.BigDecimal匹配的布尔值).
由于它在某种程度上是显而易见的,我想在视图中提供ice:selectBooleanCheckbox作为值表示,向用户提供UIComponent.(我使用IceFaces作为JSF实现)
由于某些指定JSF的人认为总是将ice的值:selectBooleanCheckbox或JSF h:selectBooleanCheckbox与模型中的布尔值匹配是显而易见的,因此组件的渲染器永远不会调用任何转换器,即使您指定了一个: 问题在java.net上讨论过
因此我尝试了以下方法:
我创建了一个转换器来在UIComponent中指定它:
public class BooleanBigDecimalConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String str) {
if (StringUtils.isEmptyString(str)) {
return new BigDecimal(0);
}
if (str.equals("true")) {
return new BigDecimal(1);
} else {
return new BigDecimal(0);
}
}
public String getAsString(FacesContext context, UIComponent component, Object obj) {
if (obj != null) {
String str = obj.toString();
if (str.equalsIgnoreCase("1")
|| str.equalsIgnoreCase("yes")
|| str.equalsIgnoreCase("true")
|| str.equalsIgnoreCase("on")) {
return "true";
} else {
return "false";
}
}
return …Run Code Online (Sandbox Code Playgroud)