diff --git a/typo3/sysext/core/Classes/Database/Query/Expression/ExpressionBuilder.php b/typo3/sysext/core/Classes/Database/Query/Expression/ExpressionBuilder.php
index ad5cf5bdb8409ba250eac595050f7efb43410bac..692dd25b795a4731441599de00402e2b6c403f43 100644
--- a/typo3/sysext/core/Classes/Database/Query/Expression/ExpressionBuilder.php
+++ b/typo3/sysext/core/Classes/Database/Query/Expression/ExpressionBuilder.php
@@ -437,6 +437,18 @@ class ExpressionBuilder
         return $this->calculation('COUNT', $fieldName, $alias);
     }
 
+    /**
+     * Creates a LENGTH expression for the given field/alias.
+     *
+     * @param string $fieldName
+     * @param string|null $alias
+     * @return string
+     */
+    public function length(string $fieldName, string $alias = null): string
+    {
+        return $this->calculation('LENGTH', $fieldName, $alias);
+    }
+
     /**
      * Create a SQL aggregate function.
      *
diff --git a/typo3/sysext/core/Classes/Integrity/DatabaseIntegrityCheck.php b/typo3/sysext/core/Classes/Integrity/DatabaseIntegrityCheck.php
index 82be6f70cbb697d2511b4b818352d5ece2dca1c8..34eb270763e80a9ff4f33edc1974da0dbeca5e84 100644
--- a/typo3/sysext/core/Classes/Integrity/DatabaseIntegrityCheck.php
+++ b/typo3/sysext/core/Classes/Integrity/DatabaseIntegrityCheck.php
@@ -18,6 +18,7 @@ use Doctrine\DBAL\Types\Type;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Database\Connection;
 use TYPO3\CMS\Core\Database\ConnectionPool;
+use TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder;
 use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
 use TYPO3\CMS\Core\Database\RelationHandler;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -227,7 +228,11 @@ class DatabaseIntegrityCheck
                 }
                 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($table);
                 $queryBuilder->getRestrictions()->removeAll();
-                $queryResult = $queryBuilder->select('uid', 'pid', $GLOBALS['TCA'][$table]['ctrl']['label'])
+                $selectFields = ['uid', 'pid'];
+                if (!empty($GLOBALS['TCA'][$table]['ctrl']['label'])) {
+                    $selectFields[] = $GLOBALS['TCA'][$table]['ctrl']['label'];
+                }
+                $queryResult = $queryBuilder->select(...$selectFields)
                     ->from($table)
                     ->where(
                         $queryBuilder->expr()->notIn(
@@ -422,7 +427,8 @@ class DatabaseIntegrityCheck
             $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class);
             foreach ($fkey_arrays as $table => $field_list) {
                 if ($GLOBALS['TCA'][$table] && trim($field_list)) {
-                    $schemaManager = $connectionPool->getConnectionForTable($table)->getSchemaManager();
+                    $connection = $connectionPool->getConnectionForTable($table);
+                    $schemaManager = $connection->getSchemaManager();
                     $tableColumns = $schemaManager->listTableColumns($table);
 
                     $queryBuilder = $connectionPool->getQueryBuilderForTable($table);
@@ -433,9 +439,13 @@ class DatabaseIntegrityCheck
                     $queryBuilder->select('uid')
                         ->from($table);
                     $whereClause = [];
+
                     foreach ($fields as $fieldName) {
                         // The array index of $tableColumns is the lowercased column name!
-                        $fieldType = $tableColumns[strtolower($fieldName)]->getType()->getName();
+                        // It is quoted for keywords
+                        $column = $tableColumns[strtolower($fieldName)]
+                            ?? $tableColumns[$connection->quoteIdentifier(strtolower($fieldName))];
+                        $fieldType = $column->getType()->getName();
                         if (in_array(
                             $fieldType,
                             [Type::BIGINT, Type::INTEGER, Type::SMALLINT, Type::DECIMAL, Type::FLOAT],
@@ -456,6 +466,16 @@ class DatabaseIntegrityCheck
                                     $queryBuilder->createNamedParameter('', \PDO::PARAM_STR)
                                 )
                             );
+                        } elseif (in_array($fieldType, [Type::BLOB], true)) {
+                            $whereClause[] = $queryBuilder->expr()->andX(
+                                $queryBuilder->expr()->isNotNull($fieldName),
+                                $queryBuilder->expr()
+                                    ->comparison(
+                                        $queryBuilder->expr()->length($fieldName),
+                                        ExpressionBuilder::GT,
+                                        $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
+                                    )
+                            );
                         }
                     }
                     $queryResult = $queryBuilder->orWhere(...$whereClause)->execute();
diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Expression/ExpressionBuilderTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Expression/ExpressionBuilderTest.php
index 30798ba895e9d5afec3b49286e036a43c75e3105..4926d90b5db05e00a03de745bf7379162ad4e7c0 100644
--- a/typo3/sysext/core/Tests/Unit/Database/Query/Expression/ExpressionBuilderTest.php
+++ b/typo3/sysext/core/Tests/Unit/Database/Query/Expression/ExpressionBuilderTest.php
@@ -488,6 +488,23 @@ class ExpressionBuilderTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCa
         );
     }
 
+    /**
+     * @test
+     */
+    public function lengthQuotesIdentifier()
+    {
+        $this->connectionProphet->quoteIdentifier(Argument::cetera())->will(function ($args) {
+            $platform = new MockPlatform();
+            return $platform->quoteIdentifier($args[0]);
+        });
+
+        $this->assertSame('LENGTH("tableName"."fieldName")', $this->subject->length('tableName.fieldName'));
+        $this->assertSame(
+            'LENGTH("tableName"."fieldName") AS "anAlias"',
+            $this->subject->length('tableName.fieldName', 'anAlias')
+        );
+    }
+
     /**
      * @test
      */