我们有一个SP,它生成要迁移的表的列表。在处理表列表期间,有时会删除列表中原来的表。 SP遇到一个“找不到表”条件时会引发异常并退出。
代码如下:
import rdflib as _rdf
import sqlalchemy as _sqla
db_str = 'postgresql://testuser:testpasswd@localhost/testdb'
db = _sqla.create_engine(db_str)
graph = _rdf.Graph()
graph.open(db)
print(graph.serialize(format='nt'))
我正在寻找在SQL_STATEMENT2中验证REC1的方法,以验证它不是null还是空字符串。如果是这样,我想跳过该REC1实例并移至下一个实例。以下似乎不是答案:
SQL_STATEMENT1 := 'SELECT * FROM ...';
FOR REC1 IN EXECUTE SQL_STATEMENT1
LOOP
SQL_STATEMENT2 := 'SELECT * FROM ...';
FOR REC2 IN EXECUTE SQL_STATEMENT2
LOOP
...
或
IF SQL_STATEMENT2 IS NULL THEN
CONTINUE
END IF;
答案 0 :(得分:0)
由于在生成外部列表的时间与执行内部语句的时间之间,原始列表中的表之一被删除的可能性很小,因此,我认为没有立即的方法可以防止其失败。即使外面的“列表”上只有一张桌子...
您需要以良性方式处理SP中的特定错误。