我正在尝试从具有9i(v9.2.0.1)客户端的PC连接到11g(v11.2.0.1.0)上的模式.它似乎可以很好地连接到一些模式,但不是这个模式 - 它ORA-01017 Invalid Username/Password每次都会返回错误.
用户名和密码是绝对正确的 - 任何人都可以想到为什么这不起作用的原因?
9i和11g之间是否有任何根本的不兼容性?
我刚刚开始研究Git钩子,但我似乎无法让它们运行.
我设置了一个本地存储库,所以我的项目文件夹中现在有一个'.git'目录.我已将".cmd"文件添加到名为"pre-commit.cmd"的C:/path/to/my/project/.git/hooks目录中.这是这个文件的内容:
echo "HOOK RUNNING"
echo. 2>C:/path/to/my/project/.git/hooks/EmptyFile.txt
Run Code Online (Sandbox Code Playgroud)
这应该回显文本"HOOK RUNNING"并在该目录中创建一个空文本文件.但是,如果我通过我的IDE(NetBeans)提交更改或使用Git Bash提交,它们似乎都没有运行我的预提交挂钩,因为没有创建文件.
我的理解是,你需要做的就是使用钩子的名称来添加一个可执行文件(正如我所做的那样).难道我做错了什么?
注意:这是在Windows 7 PC上.
我注意到自从升级到ExtJS 4.2后,当文本字段中出现错误时显示的工具提示不足以查看工具提示的内容 - 它们似乎总是宽40px.
这是一个显示问题的测试用例:
<html>
<head>
<title>Field error tooltips</title>
<link rel="stylesheet" type="text/css" href="ext-4.2.0/resources/css/ext-all.css">
<script type="text/javascript" src="ext-4.2.0/ext-all-debug.js"></script>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function(){
var form = Ext.create("Ext.form.Panel",{
title: 'My form',
width: 300,
height: 100,
items: [
{xtype: 'textfield', name: 'FIELD1', fieldLabel: 'Field 1', allowBlank: false}
],
renderTo: Ext.getBody()
});
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,如果单击该字段然后单击其中而不键入任何内容,则会显示一个工具提示,说明它不允许为空.不幸的是,工具提示的宽度不足以看到消息.还有其他人遇到过这个吗?
谢谢!
我正在学习Symfony2(和OOP)并希望创建一个可在我的应用程序中使用的服务.此服务获取值foo,根据数据库表进行检查,并返回值栏.
我有一个小班
namespace Acme\TestBundle\Toolbox;
class StringToolbox
{
public function lookupSomething($foo)
{
$conn = $this->get('database_connection');
$sql = "SELECT bar FROM bar_list WHERE foo = :foo";
$stmt = $conn->prepare($sql);
$stmt->bindValue("foo", $foo);
$stmt->execute();
return $bar;
}
}
Run Code Online (Sandbox Code Playgroud)
我的设置是:
services:
toolbox:
class: Acme\TestBundle\Toolbox
arguments: [@database_connection]
Run Code Online (Sandbox Code Playgroud)
但它抛出一个错误,说get()方法是未定义的.我被困了 - 我怎么能在服务中使用DBAL?谢谢!
我对Zend和单元测试都很陌生.我想出了一个使用Zend Framework 2和Doctrine的小应用程序.它只有一个模型和控制器,我想对它们运行一些单元测试.
这是我到目前为止所拥有的:
基础学说"实体"类,包含我想在所有实体中使用的方法:
<?php
/**
* Base entity class containing some functionality that will be used by all
* entities
*/
namespace Perceptive\Database;
use Zend\Validator\ValidatorChain;
class Entity{
//An array of validators for various fields in this entity
protected $validators;
/**
* Returns the properties of this object as an array for ease of use. Will
* return only properties with the ORM\Column annotation as this way we know
* for sure that it is a column with data …Run Code Online (Sandbox Code Playgroud) 我在运行WAMP的PC上设置了几个虚拟主机.办公室中的所有其他PC也需要能够访问这些.传统上,每次我向PC添加新的虚拟主机时,我都需要访问所有其他办公室PC并修改其主机文件.这工作正常,但编辑所有这些文件是一件痛苦的事.
有替代方案吗?是否有某种方法可以在网络上使用集中式主机文件或其他解决方案?
安装我的应用程序时,用户必须启动SQL Plus并运行SQL脚本.该脚本包含创建许多表和许多PL/SQL函数和触发器等.
目前,某些功能在脚本中的顺序错误,因此用户当前会看到一些"使用编译错误创建的触发器"类型的消息.我相信这是因为函数/触发器依赖于其他函数,这意味着它们无法正确编译.
我想要做的是找出哪些是失败的,具体的编译错误是什么,而不是我现在得到的相当模糊的警告.这样我可以重新安排我的安装脚本中的功能,不再收到警告!
我还希望将特定错误记录到文件中.目前我正在使用SPOOL命令来记录事物,所以如果错误也可以被"假脱机",那将会很棒.
在Oracle 11上所有测试都通过OK后,我正在测试我在Oracle 12上的应用程序.在测试期间,应用程序在运行某个查询时不断失去与Oracle的连接.这是一个简单的示例,它完全复制了问题:
--create an example table
CREATE TABLE ERROR_TABLE(
PKID INT,
STRING_COLUMN VARCHAR2(255 CHAR)
);
--and run the offending query
SELECT
T.*,
ROW_NUMBER() OVER(
ORDER BY TO_NUMBER(REGEXP_SUBSTR(STRING_COLUMN,'^[0-9]*[.]*[0-9]*')) ASC,
STRING_COLUMN ASC,
PKID ASC
)
FROM
(
SELECT
PKID,
(SELECT MIN(STRING_COLUMN) FROM ERROR_TABLE T1 WHERE T1.PKID = T2.PKID) AS STRING_COLUMN
FROM ERROR_TABLE T2
)T;
Run Code Online (Sandbox Code Playgroud)
当我运行此查询时,将删除与Oracle的连接.Oracle警报日志中记录了一个"事件",但它没有说明它为什么会发生.它似乎是TO_NUMBER(...和SELECT(MIN ...部分)的组合.如果我替换其中任何一个问题就会消失.但是,我不愿意这样做,因为它已经过测试和验证,这项技术出现在整个计划的多个地方.
还有其他人遇到过这样的事吗?是什么造成的?
我正在运行Oracle 12.1.0.1.0.服务器是64位,客户端是32位.
以下是警报日志的相关摘录:
<msg time='2014-09-29T14:57:30.310+01:00' org_id='oracle' comp_id='rdbms'
type='UNKNOWN' level='16' host_id='ADMIN-PC'
host_addr='fe80::5183:eb5:fdd6:8fce%10' module='SQL Developer' pid='2084'>
<txt>Exception [type: ACCESS_VIOLATION, UNABLE_TO_READ] [ADDR:0x0] [PC:0x7FEF691FB5A, qcsogolz()+208]
</txt>
</msg> …Run Code Online (Sandbox Code Playgroud) 我在Oracle 11g中有这样的查询:
SELECT *
FROM CATAT, CG, CCSD
WHERE CATAT.ID = 1007642
AND CG.C_ID = CATAT.ID
AND CATAT.IS_PARENT = 1
AND CCSD.G_ID = CG.ID
Run Code Online (Sandbox Code Playgroud)
在这种情况下,查询返回零行,并且几乎立即执行.但是,如果我将其更改为:
SELECT COUNT(*) AS ROW_COUNT
FROM CATAT, CG, CCSD
WHERE CATAT.ID = 1007642
AND CG.C_ID = CATAT.ID
AND CATAT.IS_PARENT = 1
AND CCSD.G_ID = CG.ID
Run Code Online (Sandbox Code Playgroud)
它永远不会回来 - 我已经让查询运行超过5分钟,但它仍然没有完成.事实上,除SELECT*之外的任何事情都需要很长时间才能运行.例如SELECT CG.ID FROM...,或SELECT CATAT.* FROM...
这个查询唯一不寻常的是CCSD表中有数百万行数据.有一个索引CCSD.G_ID,所以它不能缺少索引.
我只是不明白为什么SELECT *如果你做了除此之外的其他事情,那么使用a立即返回零行的查询应该花费这么长时间?任何人都可以对此有所了解吗?
以下是SELECT * FROM...查询的解释计划:

以下是SELECT COUNT(*) FROM...查询的解释计划:

我正在使用PHPUnit和Selenium 2在我的网络应用程序上进行一些集成测试.我希望每次测试失败时都会保存截图.这是我到目前为止:
<?php
include 'c:/wamp/www/testarea/selenium/phpunit-selenium/vendor/autoload.php';
class WebTest extends PHPUnit_Extensions_Selenium2TestCase
{
protected function setUp()
{
$this->setBrowser('firefox');
$this->setBrowserUrl('http://www.google.com/');
}
public function testTitle()
{
$this->url('http://www.google.com/');
file_put_contents("c:/wamp/www/testarea/selenium/phpunit-selenium/screenshots/screenshot1.png",$this->currentScreenshot());
$this->assertEquals('NOT GOOGLE', $this->title());
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,并在运行测试时保存屏幕截图 - 但是,我希望能够在测试失败后才能保存屏幕截图,这应该在每次测试时都会发生.有没有办法告诉PHPUnit在每次测试失败后自动运行一个函数?
谢谢