我有一个现有的存储过程,它接受2个参数并返回一个oracle游标.游标包含大约30到60行数据.
我想在另一个存储过程中使用上面预先存在的存储过程作为表...基本上我想调用预先存在的存储过程并查看返回的行是否包含特定值.
例如:
SP 1 = get_data_1 (returns oracle cursor)
SP 2 = get_data_2
Run Code Online (Sandbox Code Playgroud)
在get_data_2中
select count(*) from get_data_1 (pass_input_parms) A where A.ID = '12345'
Run Code Online (Sandbox Code Playgroud)
从概念上讲,对我来说似乎是一件微不足道的事情,但对于oracle世界的新手,我不知道如何利用返回游标的预先存在的存储过程.
我该怎么做?
我正在寻找一种使用正则表达式进行模糊匹配的方法.我想使用Perl,但是如果有人可以推荐任何方式来做这个会有所帮助.
作为一个例子,我想匹配一个字母"纽约",前面加一个2位数.之所以遇到困难是因为文本是来自PDF的OCR,所以我想进行模糊匹配.我想要匹配:
12 New York
24 Hew York
33 New Yobk
Run Code Online (Sandbox Code Playgroud)
和其他"近距离"比赛(在Levenshtein距离意义上),但不是:
aa New York
11 Detroit
Run Code Online (Sandbox Code Playgroud)
显然,我需要指定匹配的允许距离("模糊").
据我了解,我不能使用String::ApproxPerl模块来执行此操作,因为我需要在匹配中包含正则表达式(以匹配前面的数字).
另外,我应该注意到这是我真正想要匹配的一个非常简单的例子,所以我不是在寻找一种蛮力的方法.
编辑添加:
好的,我的第一个例子太简单了.我并不是说人们会挂在前面的数字上 - 抱歉这个坏例子.这是一个更好的例子.考虑这个字符串:
ASSIGNOR, BY MESHS ASSIGN1IBNTS, TO ALUSCHALME&S MANOTAC/rURINGCOMPANY, A COBPOBATlOH OF DELAY/ABE.
这实际上是说:
ASSIGNOR, BY MESNE ASSIGNMENTS, TO ALLIS-CHALMERS MANUFACTURING COMPANY, A CORPORATION OF DELAWARE
我需要做的是提取短语"ALUSCHALME&S MANOTAC/rURINGCOMPANY"和"DELAY/ABE".(我意识到这可能看起来像疯了.但我是一个乐观主义者.)一般来说,模式看起来像这样:
/Assignor(, by mesne assignments,)? to (company name), a corporation of (state)/i
匹配是模糊的.
我非常喜欢在"lua编程"16.1,16.2中描述面向对象编程的方式:
http://www.lua.org/pil/16.1.html
http://www.lua.org/pil/16.2.html
并希望遵循这种方法.但我想更进一步:我希望有一个称为"类"的基类"类",它应该是所有子类的基础,因为我想在那里实现一些辅助方法(如"instanceof"等) .),但基本上它应该如书中所述:
function class:new(o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
Run Code Online (Sandbox Code Playgroud)
现在我的问题:
我想有一个类"数字",它继承自"类":
number = class:new()
Run Code Online (Sandbox Code Playgroud)
我想在这个类中为运算符重载(__add,__sub等)定义元方法,所以类似于:
n1 = number:new()
n2 = number:new()
print(n1 + n2)
Run Code Online (Sandbox Code Playgroud)
作品.这不是一个真正的问题.但现在我想要第三类"钱",它继承自"数字":
money = number:new{value=10,currency='EUR'}
Run Code Online (Sandbox Code Playgroud)
我在这里介绍一些新的属性等.
现在我的问题是,我没有工作,"钱"继承了"类"和"数字"的所有方法,包括 "数字"中定义的所有元方法.
我已经尝试了一些事情,比如覆盖"新"或修改元数据,但我无法让事情发挥作用,既没有放弃"钱"中"阶级"的方法,也没有放弃"钱"中"数字"的元方法
我知道,那里有很多类的实现,但我真的很想坚持lua本身的最小方法.
任何帮助将非常感谢!
非常感谢!
byte[] bytes = new byte[uploader.UploadedFiles[0].InputStream.Length];
uploader.UploadedFiles[0].InputStream.Read(bytes, 0, bytes.Length);
var storedFile = new document();
string strFullPath = uploader.UploadedFiles[0].FileName;
string strFileName = Path.GetFileName(strFullPath);
storedFile.document_id = Guid.NewGuid();
storedFile.content_type = uploader.UploadedFiles[0].ContentType;
storedFile.original_name = strFileName;
storedFile.file_data = bytes;
storedFile.date_created = DateTime.Now;
db.documents.InsertOnSubmit(storedFile);
db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
如果:
在对 Read 的单个调用中从流中读取是非常危险的。您假设所有数据都将立即可用,但情况并非总是如此。您应该始终循环阅读,直到没有更多数据为止。
我应该如何更改上面的代码以使其“不那么危险”?
我有一些代码给了我一些我们有结构的人
struct Pair {
string s1;
string s2;
bool equivalent;
};
Run Code Online (Sandbox Code Playgroud)
然后他设置了这些结构的矢量硬编码
std::vector<Pair> PairID;
staticdata() {
PairID={{"string","string2",true},
{"string","string3",true},
{"string","string4",false},
{"string","string7",false},
{"string3","string8",false}
};
}
Run Code Online (Sandbox Code Playgroud)
不幸的是我的编译器抱怨在对行ID = {{"string","string2",true},
为什么是这样?他建议使用-std = c ++ 0x进行编译,但我的编译器(gcc 4.2)不支持这一点.是否有一种简单的方法来转换代码,使其有效?它为什么失败?
我使用的是Mac OSX,不想更新我的编译器
给定一系列索引(标识符),我想将每个索引映射到一个布尔值,即:
// interface pseudocode
interface bitmap {
bool identifier_is_set(unsigned int id_idx) const;
void set_identifier(unsigned int id_idx, bool val) const;
};
Run Code Online (Sandbox Code Playgroud)
这样我就可以设置和查询每个ID(索引)(如果设置或未设置),您更喜欢用什么来实现这个?
我认为这称为位数组或位图或位集,如果我错了,请纠正我。
假设最大标识符是预定的并且不大于1e6(1m),可能小得多(10k - 100k)。(这意味着 sizeof(int)*maximum_id_idx 使用的大小很容易适合内存。)
到目前为止我看到的可能的解决方案:
std::set<size_t>- 根据需要向该集合中添加或删除标识符。只要我们有稀疏位图,就允许任意大的标识符。std::vector<bool>- 调整为适当的最大值,为每个 id_idx 存储 true 或 false。std::vector<char>- 同样的事情,但没有遇到奇怪的std::vector<bool>问题。使用的内存比vector<int>.std::vector<int>- 使用 anint作为布尔标志来拥有使用机器自然字大小的容器。(不知道这是否会有所作为。)请回答您更喜欢哪种容器类型以及原因,考虑到上面引用的最大 id 限制,特别是考虑查询位图的性能方面(插入性能并不重要)。
vector注意: vs.的接口使用set并不重要,因为无论如何它都会隐藏在它的包装类后面。
编辑:添加关于 std::bitset 的讨论:std::bitset 会将整个数组大小合并到对象中,即 sizeof(std::bitset<1m>) 的大小约为 1/8 MB ,这会产生一个巨大的单个对象,并且会产生一些您无法再放入堆栈中的东西(这可能相关,也可能不相关)。
我有两个关于Erlang的问题.
谢谢你.
我的数据库中有2个表.一个是订单,一个是公司.
订单具有以下结构:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
Run Code Online (Sandbox Code Playgroud)
公司有这样的结构:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
Run Code Online (Sandbox Code Playgroud)
要获得订单的公司名称,我可以这样查询:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
Run Code Online (Sandbox Code Playgroud)
该查询工作正常,但以下查询没有.
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
Run Code Online (Sandbox Code Playgroud)
为什么第一个查询有效但第二个查询无效?
第一个查询返回:
name
---------------
Company 1
Another Company
StackOverflow
Run Code Online (Sandbox Code Playgroud)
第二个查询只返回:
name
---------------
Company 1
Run Code Online (Sandbox Code Playgroud)
为什么这样,为什么第一个查询返回所有公司,但第二个查询只返回第一个查询?
嗨,我想知道是否有一套很好的键盘快捷方式来使用resharper,因为当我检查文件的灵魂中的代码问题时,我发现使用鼠标从一个问题/推荐移动到另一个问题很慢,看到建议并应用它们.
我想知道一条捷径:
1.-转到下一期或建议2. - 显示可能的修复并应用它们.
谢谢.
奇怪的问题......我不知道为什么这不能在我的服务器上运行.
出于某种原因,IF不起作用.
令我困惑的主要问题是检查文件扩展名的那个.即使由于某种原因它在我的服务器而不是我的电脑上返回TRUE也不匹配.
if (isset($_POST['submit'])) {
$sizelimit = 50; //File size limit in KB.
$destination_folder = 'images/user_avatars/temp/';
$fileurl = $_POST['avatar_url'];
$filetype = substr(strrchr($fileurl,'.'),1);
$filename = "user_" . $_SESSION[user_id] . "." . $filetype;
$temp = $destination_folder . $filename;
if ($filetype == "gif" || "png" || "jpg" || "jpeg") {
$file = fopen ($url, "rb");
if ($file) {
$newfile = fopen ($temp, "wb");
if ($newfile) {
while(!feof($file)) {
fwrite($newfile, fread($file, 1024 * 8 ), 1024 * 8 );
}
}
}
if …Run Code Online (Sandbox Code Playgroud)