以下SQL代码无法正确传递到我的后端代码。
此SQL代码在Postico中可以正常工作,但是在后端调用它时,它不能工作,只能提供从我的终端粘贴的结果。
with testdata as (
select 'MI ROOFING LLC' bizname from dual
union all select 'LAKESHORE LLC NILES MI' from dual
union all select 'MIDLAND WILLCOX' from dual
)
select bizname,
regexp_replace(initcap(bizname),'((^|\W)(Mi|Llc)($|\W))',upper('<x>\1<y>')) bizname1,
regexp_replace(initcap(bizname),'((^|\W)(Mi|Llc)($|\W))',
upper(regexp_substr(initcap(bizname),'(^|\W)(Mi|Llc)($|\W)'))) bizname1_workaround
from testdata;
BIZNAME BIZNAME1 BIZNAME1_WORKAROUND
---------------------- ---------------------------------- -----------------------
MI ROOFING LLC <X>Mi <Y>Roofing<X> Llc<Y> MI RoofingMI
LAKESHORE LLC NILES MI Lakeshore<X> Llc <Y>Niles<X> Mi<Y> Lakeshore LLC Niles LLC
MIDLAND WILLCOX Midland Willcox Midland Willcox
3 rows selected.
答案 0 :(得分:1)
正如其他人所说:问题很可能是分号。
一条SQL语句不需要(也永远不需要)由语句终止符终止。
仅当有可能用SQL编写整个脚本和/或过程时,才需要使用语句终止符。因此,如果在用SQL编写 整个过程 时,则必须使用分号来终止语句(原因是 < em> parser 可以区分一个陈述和另一个陈述)。如果并且当您仅发布单个语句以执行时,那么就没有“将一个语句与另一个语句区分开”,并且终止分号是多余的,并且如果您确实使用这些语句,那么在这种情况下,大多数语句处理程序实际上都会失败。
答案 1 :(得分:0)
您应该尝试删除结尾的分号from pyrevit import script
from pyrevit.framework import List
from pyrevit.framework import clr
from pyrevit import revit, DB
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *
groups = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_IOSModelGroups).WhereElementIsNotElementType().ToElements()
selection = revit.get_selection()
SelectionIds = []
for group in groups:
name = group.Name
if "(members excluded)" in name:
SelectionIds.append(group.Id)
selection.set_to(SelectionIds)
。