我正在使用Oracle(工作空间是TOAD),我需要创建我的字符串,如果它们被缩短然后是10个字符,那么添加前导零以使它们全部为10位数字符串.
例如,如果我有这样的字符串:'12H89'需要'0000012H89'或'1234'为'0000001234'
如何才能做到这一点?什么是最好的方式?
提前致谢 .
在Oracle DDL(创建/更改)中是否可以像MS SQL(从2005年开始)那样是事务性的?
虽然我用两个相同的CSS <input>和<select>中,文本<select>被切断,而在输入文本是完美的.为什么会发生这种情况以及如何解决?
input,
select {
box-sizing: content-box;
width: 90%;
height: 23px;
padding: 10px;
font-family: TheBoldFont;
font-size: 27px;
color: #f26e7c;
border: 4px solid black;
border-radius: 12px;
}Run Code Online (Sandbox Code Playgroud)
<input type="text" value="xxxxxxx">
<select>
<option selected value="xxxxxxxxx">xxxxxxxx</option>
</select>Run Code Online (Sandbox Code Playgroud)
这是结果:

这就是在Google Chrome的开发者工具中悬停显示的内容:

我有这个HTML格式,我想要样式.html是一个表(和实际表),我想给它一个边框.该元素还有一个:before伪元素,我用它在顶角放一个小三角形.
JSFiddle就在这里.我希望这是有道理的.我尽可能地删除了标记和CSS,因为它实际上是一个大网站的一小部分.
http://jsfiddle.net/GolezTrol/28yDb/2/
现在的问题是,具有2个列,具有border-collapse: collapse;在表和:before伪元素上的组合,导致元素的顶部边界部分消失.它仅存在于第一列的长度.
你会假设它是位于边框顶部的伪元素,但是这个元素非常小,据我所知,这可能不是问题所在.我添加visibility: hidden;到伪元素是肯定的,我可以告诉三角形消失了,但边框仍然不完整.
不幸的是我无法更改标记,因为这是由MediaWiki输出的,但我确实可以完全控制CSS.
HTML:
<div id="globalWrapper">
<div id="column-content">
<div class="thumb tright">
<table class="infobox vcard" style="">
<tbody>
<tr>
<th colspan="2" class="fn org" style=""> Example text</th>
</tr>
<tr>
<th>Row head</th>
<td>Content</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
CSS:
/* Generic table styling */
table {
border-collapse: collapse;
/*border-spacing: 0;*/ }
/* The box */
.thumb.tright table.infobox.vcard {
border: 3px solid #fae104;
position: relative;
}
/* Triangle */
.thumb.tright table.infobox.vcard:before {
content: "";
position: absolute;
width: 0; …Run Code Online (Sandbox Code Playgroud) 我的第一个问题.:)
我正在寻找两个图像之间的过渡,其中图像首先收缩为圆形,然后圆圈再次包含另一个图像.这很难解释,我可能会使用错误的词语,因为我在Interwebz上找不到任何关于它的内容.
我说的是Loony Toons结尾的效果. http://www.youtube.com/watch?v=ZuYIq-J5l9I
那个缩小到黑色,可以在JavaScript/JQuery中完成吗?
动机
我正在尝试使用WebGL创建一个小型演示应用程序.我选择使用SceneJS,因为它似乎是一个简单的框架,并且足以满足此目的.
我已经下载了几个.blend模型(Amy Rose等)并使用Blender将它们导出为Collada(.dae)文件.然后我使用scenejs-pycollada将它们转换为json模型.
我只花了几个小时让scenejs-pycollada转换器工作.如果您以前从未使用过Python,那么显然让这些Python依赖项在Windows中运行并不容易.;)
问题
但现在我被困(再次).我的问题是模型没有任何纹理或材料.
我使用了SceneJS 的Seymour Plane示例.我转换的模型几乎看不到.它是黑色的,似乎不响应场景中的灯光.如果我将平面和模型加载在一起,我可以看到模型被加载,因为它的手臂和腿伸出了飞机.
现在我按照了几个教程,让我将纹理导出为PNG图像.然后我修改了JSON模型中的纹理文件名以匹配文件名,但它没有帮助.
所以我希望有人可以帮我找到一种方法将Blender模型(或其他常见的3D模型)导出为SceneJS使用的JSON格式,包括纹理.
只要它工作,在SceneJS中加载模型的任何其他方法也会这样做.
如果有一个免费下载身体/图形JSON模型的链接,这将有助于现在,但我宁愿了解它是如何工作的.:)
我正在使用
我的工作流程
在Blender中,我将模型导出到Collada(*.dae)文件,然后使用scenejs-pycollada将它们转换为Raw JSON.这给了我一个JSON文件,里面有两个对象.第一个似乎是场景,第二个是模型.我保留第二个并将其放在SceneJS示例代码中使用的Javascript变量中.该模型以, "type": "library", "parent": "Scene"我需要从代码中删除的属性结束,以使其加载.
我想选择几个字段的串联,但在它们之间有一个分隔符.只有当两个操作数都不为空时,分隔符才应该存在.
所以对于一个记录a='foo', b=NULL, c='bar',我想得到结果abc='foo;bar'(不是'foo;;bar').
我希望有一个像concat_sep(a, b, ';')这样的函数只添加';' 如果a和b都不为空,则为inbetween.
当然,我可以像这样使用nvl2:
select
a, b, c,
substr(abc, 1, length(abc) - 1) as abc
from
(select
a, b, c,
nvl2(a, a || ';', '') || nvl2(b, b || ';', '') || nvl2(c, c || ';', '') as abc
from
Table1)
Run Code Online (Sandbox Code Playgroud)
但是正如你所看到的,这段代码很快就会变得很无聊,特别是当你有超过3列的时候,你已经给了它们合理的名字,而不是a,b和c.;-)
我找不到更短,更容易或更易阅读的方式,但我想在完全放弃之前我会问这里(或者浪费时间自己写这样的功能).
我试图读取一个REST API,它是gzip编码的.确切地说,我试图阅读StackExchange API.
我已经在TRESTResponse中找到了自动解码GZIP的问题?但由于某些原因,这个答案并没有解决我的问题.
测试设置
在XE5中,我添加了TRestClient,TRestRequest和具有以下相关属性的TRestResponse.我设置了客户端的BaseURL,请求的资源和参数,以及我AcceptEncoding对请求的设置gzip, deflate,这应该使它自动解码gzipped响应.
object RESTClient1: TRESTClient
BaseURL = 'https://api.stackexchange.com/2.2'
end
object RESTRequest1: TRESTRequest
AcceptEncoding = 'gzip, deflate'
Client = RESTClient1
Params = <
item
Kind = pkURLSEGMENT
name = 'id'
Options = [poAutoCreated]
Value = '511529'
end
item
name = 'site'
Value = 'stackoverflow'
end>
Resource = 'users/{id}'
Response = RESTResponse1
end
object RESTResponse1: TRESTResponse
end
Run Code Online (Sandbox Code Playgroud)
这导致url:
https://api.stackexchange.com/2.2/users/511529?site=stackoverflow
我调用这样的请求,有两个消息框来显示url和请求的结果:
ShowMessage(RESTRequest1.GetFullRequestURL());
RESTRequest1.Execute; // Actual call
ShowMessage(RESTResponse1.Content);
Run Code Online (Sandbox Code Playgroud)
如果我在浏览器中调用该URL,我会得到一个正确的结果,这是一个json对象,其中包含我的一些用户信息. …
我正在使用Mocha进行单元测试,使用Chai进行断言.
我想找到一个易于使用的解决方案来检查对象是否具有我的比较对象中定义的结构和属性.但我不需要对象完全相等.被测对象应该至少包含我的测试对象中的所有属性,但它也可能包含当时未测试的其他属性.
所以,我想测试一个单元来检查它返回的对象是否至少有一个名为'foo'的属性,它本身就是一个至少包含值为10的属性'bar'的对象.所以,我有这个预期的结果测试:
var expected = {foo: {bar: 10}};
Run Code Online (Sandbox Code Playgroud)
我打电话给我的单位并将我的测试主题放在一个变量中sut:
var sut = MyUnit.myFunction();
Run Code Online (Sandbox Code Playgroud)
所以对于各种suts,我期待这些结果:
// Success. Exact match
{foo: {bar: 10}}
// Fail. Structure is ok, but property value is wrong.
{foo: {bar: 11}}
// Fail. property bar is missing.
{foo: {qux: 20}}
// Success. All properties match. Extra properties (baz) in sut are ignored:
{baz: 'a', foo: {bar: 10, baz: 20}}
Run Code Online (Sandbox Code Playgroud)
然后我想以方便的方式比较它.我可以单独测试所有属性或在多个测试中拆分它,但我希望我可以做类似的事情
sut.should.deep.contain.all(expected);
Run Code Online (Sandbox Code Playgroud)
但是,即使对象完全相同,我也得到了以下令人惊讶的结果:
AssertionError:期望{foo:{bar:10}}的属性'foo'为{bar:10},但得到{bar:10}
当然我试过这个,以及其他几个变种.如果对象包含额外的属性,则最简单的相等测试不起作用.
sut.should.eql(expected);
Run Code Online (Sandbox Code Playgroud)
AssertionError:期望{foo:{bar:10,qux:20}}深度相等{foo:{bar:10}}
我测试过的其他组合have和contains一起deep …
我最近开始注意到TClientDataSet很快用完了内存。我在生产中遇到一个问题,它无法加载大约60.000的数据集,这对我来说似乎很低。客户端数据集通过提供程序与ADODataSet连接,该加载良好。我单独运行该查询,并将结果输出到CSV,这给了我<30MB的文件。
因此,我进行了一个小测试,可以在客户端数据集中加载多达165K条记录,该记录具有一个字符串字段,其大小为4000。该字段的实际值只有3个字符,但这似乎并不结果很重要。
看起来每条记录至少占用了这4000个字符。4000 x 2字节x 165K记录= 1.3GB,因此开始接近32位内存限制。如果将其转换为备注字段,则可以轻松添加500万行。
program ClientDataSetTest;
{$APPTYPE CONSOLE}
uses SysUtils, DB, DBClient;
var
c: TClientDataSet;
i: Integer;
begin
c := TClientDataSet.Create(nil);
c.FieldDefs.Add('Id', ftInteger);
c.FieldDefs.Add('Test', ftString, 4000); // Actually claims this much space...
//c.FieldDefs.Add('Test', ftMemo); // Way more space efficient (and not notably slower)
//c.FieldDefs.Add('Test', ftMemo, 1); // But specifying size doesn't have any effect.
c.CreateDataSet;
try
i := 0;
while i < 5000000 do
begin
c.Append;
c['Id'] := i;
c['Test'] := …Run Code Online (Sandbox Code Playgroud)