我知道这类问题已经多次发布在这里,例如:Java方式
我在标准树模式的数据(150K +)的大量(id,parent_id,some_data)
问题:如何获取给定node_id的叶子?
表结构:
CREATE TABLE `DATA_TREE` (
`ID` int(11) NOT NULL,
`PARENT_ID` int(11) NOT NULL,
`DATA` varchar(45) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID_UNIQUE` (`ID`),
KEY `fk_DATA_TREE_1_idx` (`PARENT_ID`),
CONSTRAINT `fk_DATA_TREE_1` FOREIGN KEY (`PARENT_ID`) REFERENCES `DATA_TREE` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf
Run Code Online (Sandbox Code Playgroud)
数据库: MySQL 5.1.61
当我根据这段代码准备这个SQL Fiddle时:
WITH l_cur AS
(SELECT to_char(LEVEL - 1, '0000') dd FROM dual CONNECT BY LEVEL <= 10)
SELECT '''' || d1.dd || '''' o,
'''' || d2.dd || '''' n
FROM (SELECT dd,
row_number() over(ORDER BY 1) rn
FROM l_cur) d1,
(SELECT dd,
row_number() over(ORDER BY dbms_random.random) rn
FROM l_cur) d2
WHERE d1.rn = d2.rn;
O N
------- -------
' 0000' ' 0000'
' 0001' ' 0005'
' 0002' ' 0009'
' 0003' ' 0003'
' 0004' …Run Code Online (Sandbox Code Playgroud) 添加INDEX BY PLS_INTEGER和不在新表类型声明结束之间的差异是什么.看看这个例子:
DECLARE
GC_BULK_LIMIT CONSTANT INTEGER := 500;
CURSOR CUR_CLIENTS IS SELECT C.ID, C.NAME FROM CLIENTS C;
TYPE RT_CLIENTS IS TABLE OF CUR_CLIENTS%ROWTYPE;
-- TYPE RT_CLIENTS IS TABLE OF CUR_CLIENTS%ROWTYPE INDEX BY PLS_INTEGER;
LT_CLIENTS RT_CLIENTS;
BEGIN
OPEN CUR_CLIENTS;
LOOP
FETCH CUR_CLIENTS BULK COLLECT INTO LT_CLIENTS LIMIT GC_BULK_LIMIT;
EXIT WHEN LT_CLIENTS.COUNT = 0;
FOR I IN 1..LT_CLIENTS.COUNT LOOP
-- ... SOME LOGIC
END LOOP;
END LOOP;
CLOSE CUR_CLIENTS;
END;
Run Code Online (Sandbox Code Playgroud) 在2.7.5Windows下的python中,当FileHandler处于模式时'w'(在写入之前截断文件)处理程序不会只写入最后一行.在模式下'a'一切都很好.
我的logging.conf档案:
[loggers]
keys=root
[handlers]
keys=consoleHandler,fileHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=NOTSET
handlers=fileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=('generator.log', 'a', 'utf8', 0)
[formatter_simpleFormatter]
format=[ %(asctime)s ] [ %(name)s ] [ %(levelname)-5s ] - %(message)s
datefmt=
Run Code Online (Sandbox Code Playgroud)
我的oracle.py档案:
__author__ = 'wbar'
import cx_Oracle
from contextlib import closing
import logging
class Connector(object):
__connection__ = None
__user_name__ = None
__password__ = None
__tns_name__ = None
__logger__ = None
def get_connection(self, …Run Code Online (Sandbox Code Playgroud) 如何使用 Django Rest 序列化器序列化浮点数列表?
我的数据是(repr我的对象列表):
[{
'id': '413',
'data': [
[None, 32.33125, None, None],
[None, 37.96, 48.70112359550562, 66.118],
[None, None, 58.06576923076923, 77.31023809523809],
[None, None, None, 110.0075],
[None, None, None, 139.89]
]
}, {
'id': '406',
'data': [
[None, 35.33125, None, None],
[None, 37.96, 43.123, 66.118],
[None, None, 58.12, 72,123],
[None, None, None, 119.000234],
[None, None, None, 139.89]
]
}]
Run Code Online (Sandbox Code Playgroud)
对于尝试提出不同方法的用户,我需要说明我需要序列化程序类,因为我想使用generics.ListAPIView并且需要设置serializer_class属性。
我想知道有没有办法在PL/SQL中接收信息已经更新了多少行以及在我的PL/SQL脚本使用MERGE DML语句时插入了多少行.
让我们使用这里描述的Oracle合并示例: 示例 MERGE示例
此功能在我的函数中使用,但我还想记录信息已更新的行数和已插入的行数.
在Oracle 11G中,我可以轻松调用:
SELECT * FROM TABLE@DB_LINK_NAME;
Run Code Online (Sandbox Code Playgroud)
但是如何调用SELECT另一个DB_LINK上的DB_LINK?
像这样的东西:
SELECT * FROM TABLE@REMOTE_DB_LINK_NAME@DB_LINK_NAME;
Run Code Online (Sandbox Code Playgroud) 在JavaScript中我可以做类似的事情:
var foo = function(){
var a = 5;
a = a*a;
return a;
}();
Run Code Online (Sandbox Code Playgroud)
所以我可以定义一次只使用一次的匿名函数.我在尝试,但我的做法是错误的:
foo = {
a = 5
a = a*a
return a
}
#=> SyntaxError: unexpected '\n'...
foo = do
a = 5
a = a*a
a
end
#=> SyntaxError: unexpected keyword_do_block...
foo = {
a = 5
a = a*a
a
}()
#=> SyntaxError: unexpected '\n'...
Run Code Online (Sandbox Code Playgroud) Django 1.7 Exceptions文档例外.DoesNotExist:
当找不到查询的给定参数的对象时,会引发DoesNotExist异常.Django提供了一个DoesNotExist异常作为每个模型类的属性,以识别无法找到的对象类,并允许您使用try/except捕获特定的模型类.
根据以上文档,我编写了自定义模型管理器:
class CountryManager(models.Manager):
def get_special(self, *args, **kwargs):
kwargs.update({'country': settings.ACTIVE_COUNTRY})
try:
return self.get(*args, **kwargs)
except self.model.DoesNotExists:
self.logger.warning('Unable to find specific object using filter {}'.format(kwargs))
kwargs.update({'country': settings.DEFAULT_COUNTRY})
return self.get(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
请注意: 此示例简化了带{'country': settings.ACTIVE_COUNTRY}和带的行{'country': settings.DEFAULT_COUNTRY}
class CountryModelMixing(models.Model):
country = models.CharField(
max_length=2,
default=settings.DEFAULT_COUNTRY,
choices=settings.COUNTRIES,
verbose_name=_('country')
)
objects = CountryManager()
class Meta:
abstract=True
class Product(CountryModelMixing):
name = models.CharField(max_length=40)
Run Code Online (Sandbox Code Playgroud)
在我尝试的代码中:
Product.objects.get_special(name='abc')
Run Code Online (Sandbox Code Playgroud)
我收到了以下错误:
/opt/src/common/managers.py in get_special(self, *args, **kwargs)
40 try:
41 return self.get(*args, **kwargs)
---> 42 except …Run Code Online (Sandbox Code Playgroud) oracle11g ×4
oracle ×3
plsql ×3
python ×3
django ×2
sql ×2
django-orm ×1
dml ×1
javascript ×1
merge ×1
mysql ×1
python-2.7 ×1
ruby ×1